Ссылка для донатов:
Основной канал:
Шпаргалка
#Replace #Contains #Remove #Trim #ToLower #ToUpper #СиSharp #СиШарп
Nguồn:https://wijstaanvooronzegrondrechten.org/
Ссылка для донатов:
Основной канал:
Шпаргалка
#Replace #Contains #Remove #Trim #ToLower #ToUpper #СиSharp #СиШарп
Nguồn:https://wijstaanvooronzegrondrechten.org/
Хачатур сделал шпаргалку по работе со строками,
но это работа, так сказать, изнутри строк. А мне ещё не
хватало подобной таблицы для работы со строками извне.
Итак, копируем из (в) string, string[], StringBuilder, textBox, list, listBox.
Два момента:
1-й. В textBox и listBox нельзя изменить значение какой-либо
строки. Можно лишь добавить:
textBox1.Text+=label1.Text+ Environment.NewLine;
listBox1.Items.Add("Новый элемент")
или вставить
listBox1.Items.Insert(1, "Новый элемент");
А вот как происходит с list. Сначала нужно добавить строки,
а потом уже можно их изменять:
List<string> list1 = new List<string>();
Здесь ещё нельзя написать list1[0] = "eee"; – будет ошибка
list1.Add("Нулевая строка");
list1.Add("Первая строка");
list1.Add("Вторая строка");
А здесь уже можно написать:
list1[0] = "eee";
2-й. textBox оочень медленный. Когда там набирается несколько сотен
строк, то обработка идёт с ощутимыми задержками.
В этом случае
лучше использовать listBox.
Ну всё, поехали!
КОПИРУЕМ В СТРИНГ
//копируем нулевую строку стрингового массива в стринг
string[] lines = { "Первая", "Вторая" };
string s = lines[0];
————————————————-
//копируем из StringBuilder в стринг
//StringBuilder – динамическая строка
StringBuilder sb = new StringBuilder("Привет мир");
string s = Convert.ToString(sb);
————————————————-
//копируем нулевую строку из textBox в стринг
string s = textBox1.Lines[0];
————————————————-
//копируем нулевую строку из list в стринг
List<string> list = textBox1.Lines.ToList();
string s = list[0];
————————————————-
//копируем нулевую строку из listBox в стринг
string s = Convert.ToString(listBox1.Items[0]);
—————————————————————————-
—————————————————————————-
КОПИРУЕМ В СТРИНГОВЫЙ МАССИВ
// копируем строку в стринговый массив
string s="Привет"
string[] lines = new string[] { s };
————————————————-
// копируем из StringBuilder в стринговый массив
string[] lines = new string[] { Convert.ToString(sb) };
————————————————-
// копируем из textBox в стринговый массив
string[] lines = textBox1.Lines;
————————————————-
// копируем из list в стринговый массив
string[] lines =list1.ToArray();
————————————————-
// копируем из listBox в стринговый массив
string[] lines = listBox1.Items.OfType<string>().ToArray();
—————————————————————————-
—————————————————————————-
КОПИРУЕМ В textBox
Добавляем строку в textBox
textBox1.Text+=label1.Text+ Environment.NewLine;
————————————————-
Копируем из стрингового массива в textBox
textBox1.Lines=lines; //где lines – это string[] lines
————————————————-
// добавляем StringBuilder в textBox
textBox1.Text += Convert.ToString(sb)+Environment.NewLine;
————————————————-
//Копируем из textBox в textBox
textBox2.Text = textBox1.Text;
————————————————-
//Копируем из list в textBox
textBox1.Text = string.Join(Environment.NewLine, list1);
————————————————-
//Копируем из listBox в textBox (цикл for)
for (int i = 0; i < listBox1.Items.Count; i++)
{
// Если это последняя строка, то нам не нужно
// переводить курсор на новую строку:
if (i== listBox1.Items.Count – 1) // Если последняя строка:
{
textBox1.Text += listBox1.Items[i];
break;
};
textBox1.Text += listBox1.Items[i]+ Environment.NewLine;
}
————————————————-
// Копируем из listBox в textBox (цикл while)
int i = 0;
while (i < listBox1.Items.Count)
{
if (i == listBox1.Items.Count – 1)
{
textBox1.Text += listBox1.Items[i];
buttonRefresh.PerformClick();
break;
};
textBox1.Text += listBox1.Items[i] + Environment.NewLine;
i++;
}
—————————————————————————-
—————————————————————————-
КОПИРУЕМ В list
Можно создать list заранее: List<string> list1 = new List<string>();
Можно создать и сразу присвоить значение: List <string> list1= textBox1.Lines.ToList();
// копируем стринговый массив в лист
List<string> list1 = lines.ToList(); //где lines – это string[] lines
————————————————-
// добавляем стринг в лист
list1.Add(label1.Text);
————————————————-
// добавляем StringBuilder в лист
list1.Add("");
list1[0] = Convert.ToString(sb);
————————————————-
// добавляем list в list
list2.AddRange(list1);
————————————————-
// Копируем из textBox в list
List <string> list1 = textBox1.Lines.OfType<string>().ToList();
List <string> list2 = textBox1.Lines.ToList(); // А можно и так
————————————————-
// Копируем из listBox в list
List <string> list1 = listBox1.Items.OfType<string>().ToList(); // можно так
List <string> list2 = listBox1.Items.Cast<String>().ToList(); // а можно и так
—————————————————————————-
—————————————————————————-
КОПИРУЕМ В listBox
// добавляем стринговый массив в листбокс
listBox1.Items.AddRange(lines); //где lines – это string[] lines
————————————————-
// вставляем и добавляем из StringBuilder в listBox
listBox1.Items.Insert(1, Convert.ToString(sb));
listBox1.Items.Add(Convert.ToString(sb));
————————————————-
// добавляем из listBox в listBox
object[] objCollection = new object[listBox1.Items.Count];
listBox1.Items.CopyTo(objCollection, 0);
listBox2.Items.AddRange(objCollection);
————————————————-
// добавляем list в listBox
foreach (string s in list1)
{
listBox1.Items.Add(s);
}
————————————————-
// добавляем выделенный текст из textBox в listBox
listBox1.Items.Add(textBox1.SelectedText);
————————————————-
// добавляем textBox в listBox
listBox1.Items.AddRange(textBox1.Lines);
————————————————-
// добавляем textBox в listBox (цикл for)
for (int i=0; i < textBox1.Lines.Length; i++)
{
listBox1.Items.Add(textBox1.Lines[i]);
}
————————————————-
всем привет. подскажите как именно перевести в верхний регистр не всё слово а к примеру первую букву в слове?
Приветствую всех,знаю что видео уже как год на канале,но может хоть кто и ответит)))Проблема в том, что когда читаю текст в файле как в видео,то вместо русских символов выходят знаки вопроса а с латиницей всё нормально,как быть?Я так понял проблема в какой-то кодировке,так вот как это настроить,видать надо в настройках программы полазить?Сам новичок я в winforms,обычно работаю с железом на C++,VisualStudio2019 у меня и решил подружить компьютер с микроконтроллером.
Дружище, есть у тебя видосы про формы, написал авторизатор, он все норм заходит регается и сворачивается и сразу же запускается второе окно, в этом окне расположен основной функционал, когда жму на кнопку запустить ни чего не происходит, переношу этот же код в первую форму там все норм работает, пробовал уже все что мог найти в инете по C#, пишут что фокус надо переводить на вторую форму, но я начинающий, как неделю назад начал что то писать и много еще чего не понимаю,а то что пишут в инете не рассказывая что ставить куда ставить хз, я поставил ни чего не работает, думаю или я что то не делаю или это не работает))) короче удалил вторую форму сделал на одной, но сегодня понял что надо возвращать вторую форму.
Очень жаль , что нет разбора домашних заданий,пока моих мозгов хватило на это:
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = File.ReadAllText(@"C:UsersVOVADesktop111.txt");
textBox1.Text = textBox1.Text.Replace("еще", "ещё").Replace("Еще", "Ещё");
Method("Исправлено", 1000);
if(textBox1.Text.Contains("пожалуйста"))
{
textBox1.Text = textBox1.Text.Replace("пожалуйста", ", пожалуйста,");
}
Method("Скопировать в буфер обмена", 2000);
Clipboard.SetDataObject(textBox1.Text);
}
async void Method(string str, int num)
{
await Task.Delay(num);
button1.Text = str;
}
Шрифт очень мелкий на ваших роликах , код плохо виден . Это у меня или у вас такие настройки ?
Вы все методы класса String покажите . Когда показываете метод – говорите из какого он класса , потом будет удобнее его найти в справочнике или самоучителе . А вообще классные уроки !
Тогда пусть люди пишут либо правильно сразу свои статьи, либо в программку-исправлялку
Хотел сделать progressbar(continue), но когда ставлю Task.Deley меньше 1000 анимация не успевает идти одновременно с счетчиком(проверял через лейбл) по-этому, красоты поставил progressbar(marquee), вот сам код(надеюсь вы еще читаете коментарии )
using System;
using System.Drawing;
using System.IO;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace трень
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
bool done = false;
private async void button1_Click(object sender, EventArgs e)
{
string[] str = textBox1.Lines;
button1.BackColor = Color.Bisque;
if(textBox1.Text == "")
{
textBox1.Text = "введи текст";
await Task.Delay(3000);
textBox1.Text = "";
return;
}
if (done == false)
{
while (progressBar1.Value != 100)
{
progressBar1.Visible = true;
progressBar1.Value++;
await Task.Delay(10);
if (progressBar1.Value == 100)
{
Method();
progressBar1.Value = 0;
button1.Text = "Исправлено";
progressBar1.Visible = false;
await Task.Delay(3000);
button1.Text = "Cкопирован в буфер обмена";
Clipboard.SetDataObject(textBox1.Text);
await Task.Delay(2000);
button1.Text = "Нажми что бы очистить";
done = true;
return;
}
}
}
if(done == true)
{
await Task.Delay(1000);
textBox1.Text = "";
done = false;
return;
}
void Method()
{
foreach (string s in str)
{
textBox1.Text = textBox1.Text.Replace("все равно", "всё равно");
textBox1.Text = textBox1.Text.Replace("еще", "ещё");
textBox1.Text = textBox1.Text.Replace(",,", ",");
textBox1.Text = textBox1.Text.Replace("Пожалуйста ", "Пожалуйста, ");
textBox1.Text = textBox1.Text.Replace(" пожалуйста ", ", пожалуйста, ");
textBox1.Text = textBox1.Text.Replace(" а ", ",а ");
}
}
}
}
}
Автор помоги пожалуйста разобраться
Имеется текстовой файл – нужно вывести на экран всю строку n из файла из множество строк которые в этом же файле – изменить эту строку n и сохранить изменения в этой же строке.
В качестве редактора использую richTextBox
Конечно строка n будет находится по определенному слову которую пользователь введет в textBox – то есть этих строк может быть несколько в которых есть такое слово
Если бы знать номер этой строки или номера этих строк в котором или в которых находится это слово – то уже можно считать что вопрос решен
Заранее благодарен
Спасибо за урок, после плюсов интересно и легко переходить на шарп, благодаря тебе. ДЗ:
async private void button1_Click(object sender, EventArgs e)
{
if (button1.Text != "Скопировать")
{
textBox1.Text=textBox1.Text.Replace(" пожалуйста ", ", пожалуйста, ").Replace(" еще"," ещё");
button1.Text = "Исправлено";
await Task.Delay(2000);
button1.Text = "Скопировать";
}
else
Clipboard.SetDataObject(textBox1.Text);
}
дз
bool but = true;
public Form1()
{
InitializeComponent();
}
private void Button1_Click(object sender, EventArgs e)
{
if (but == true)
{
but = false;
button1.Text = "Исправить форматирование";
textBox1.Text = textBox1.Text.Replace(",", ", ").Replace(".", ". ").Replace(",,", ",").Replace("..", ".").Replace(" ", " ");
button1.Text = "Скопировать";
}
else
{
Clipboard.SetDataObject(textBox1.Text);
but = true;
}
}
Как редактировать формат .txt в C# ? когда открываю файл в richTextBox редактирую и потом когда сохраняю и потом когда открываю этот текстовой файл обычным блокнотом то он показывает или какие то дополнительные символы или же сохраняет в одну длинную строку – хотя в оригинале текстового файла 37 строк.
1. Если сохранять через SaveFile() = какие то дополнительные символы тоже вставляет
2. Если сохранять через saveFileDialog то все сохраняет в одну строку
Как будь то текстовой редактор windows и C# разрабатывали разные компании, а не майкрософт
Как изменить цвет фокуса (Focus) ? по умолчанию фокус синего цвета
Круто
Извиняюсь за опоздание. Вот домашнее задание, проверьте пожалста) – https://yadi.sk/d/VEk_hwIxin6Hvw
Посмотрел основу, все гуд, лайк, подписка))
В общем из пожеланий: пролистал плейлист, не нашел ничего про базы данных, а очень хотелось бы, дальше скажу почему.
Предыстория: собственно почему стал учить C#, в общем то с программированием знаком, 2 года работал в веб-студии. Сейчас работаю на крупном заводе, большой парк компьютерной техники и для того что бы сотрудники моего IT-отдела пошли и исправили у кого то какие то неполадки с техникой, пользователь должен написать заявку, подписать у своего руководителя, подписать моим руководителем, потом должен подписать я и отдать заявку своему сотруднику что бы он что то пошел и сделал, хотя там и работы то на 5 минут, в общем советская бюрократия.
К делу: хочу написать некое подобие электронного Документооборота. Программка, в ней заведены пользователи, у каждого есть права, допустим подача заявки, подписание документа, принятие в оборот и к примеру что бы пользователь по выполнению работ подтверждал выполнение. И что бы все это в базе хранилось и в любой момент, начальник мог посмотреть когда были заявки, сколько и как выполнялось. Для начала. В последствии перевести в программу все журналы работ, регистраций и прочей лабуды.
Так что если есть знания работы с БД, поделись, очень нужно, у меня в них большой пробел, а у тебя все отлично получается объяснять. Ну и распределение прав, как это вообще работает и как это реализовать.
А за курс огромное спасибо, Win 10 Tweaker пользуюсь, прога огонь, до просмотра курса не знал что ты ее написал. Продолжаю смотреть дольше. Спасибо все очень интересно.
РьидОллТьэкст
У меня одного в textBox не работает .Trim() ?
Спасибо за крутой урок!) Кстати я уже дня 3 борюсь с багом, может у вас будут идеи. Дело в том что я написал сервер, и чат на нем реализовал через json, и получается что когда один клиент отправляет второму сообщение, то он находит его текстовый файлик, и вписывает в него это сообщение, и если выйти с сервера нормально, т.е закрыть сокет и все такое, то нет проблем, ну а если просто закрыть клиент не по правилам, то при попытке прочитать это сообщение, сервер начинает глючить, второй клиент не может получить доступ к файлу. Можно ли как-то освободить файлик? Ну т.е закрывать процесс, что бы он не мешал, т.е записал и освободил. Я рылся в сети, пишут про потоки, то что можно через поток текст передать, и просто закрывать поток, но я что-то сомневаюсь что это поможет, а вы как думаете?
Ура, ещё один человек который знает про тильду.
Спасибо за хороший урок
ДЗ:
https://drive.google.com/file/d/1Lbj5CqM3H4qeBBjRZ9w91a-K_VQqXSxL/view?usp=sharing
using System;
using System.Drawing;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace _22less
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
bool textChanget = true;
async void Button1_Click(object sender, EventArgs e)
{
if (textChanget == true)
{
textBox1.Text = textBox1.Text.Replace("Привет ", "Привет, ").
Replace("еще", "ещё").Replace("все равно", "всё равно").
Replace("все-равно", "всё равно").Replace("всеравно", "всё равно").
Replace("всёравно", "всё равно").Replace("ежик", "ёжик");
await Task.Delay(1000);
button1.Text = "Скопировать";
button1.BackColor = Color.LawnGreen;
textChanget = false;
}
else
Clipboard.SetDataObject(textBox1.Text);
}
private void TextBox1_TextChanged(object sender, EventArgs e)
{
textChanget = true;
button1.BackColor = Color.Gold;
button1.Text = "Исправить";
}
}
}
Спасибо большое написал программулину по выборке телефонных переговоров. Раньше тратил на эту лабуду полдня. Теперь все получается за доли секунд. Класс!
Снова привет, Хачатур. Не подскажешь в чём проблема? При чтении файла с русским текстом ловлю это http://prntscr.com/ohs00e, также почему то ничего не выводит данный код http://prntscr.com/ohs2gy (текст брал тот же, от Win10 Tweaker`a)
Вот мое дз
public partial class Form1 : Form
{
int i = 0;
public Form1()
{
InitializeComponent();
}
private async void Button1_Click(object sender, EventArgs e)
{
i++; // Прибавляем к i 1
if (i == 2) { goto Sas; } //Условие если счетчик равен 2, то переход к исполнению кода из этикетки
else
{
textBox1.Text = textBox1.Text.Replace("еще","ещё").Replace("Все равно", "Всё равно").Replace("все равно", "всё равно"); //Заменяем слова или буквы в словах в определенных случаях
textBox1.Text = textBox1.Text.Replace(" что", ", что").Replace("пожалуйста", "пожалуйста, ").Replace(" а", ", а").Replace(",,", ","); // Расставляем запятые (рассмотрены не все случаи)
textBox1.Text = textBox1.Text.Trim(); //Удаляем лишние пробелы между словами
await Task.Delay(500); //Задержка на пол секунды
button1.Text = "Исправлено";
await Task.Delay(500); //Задержка на пол секунды
button1.Text = "Скопировать в буфер обмена";
}
return; //Не выполнять код ниже
Sas: //Этикетка
Clipboard.SetDataObject(textBox1.Text); //Сохраняем в буфер
button1.Text = "Скопировано";
textBox1.Text = "";
i = 0; //Обнуляем счетчик
}
}
}