Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
30.05.2020
Размер:
202.24 Кб
Скачать

TStringList *List = new TStringList;

List->Duplicates = dupIgnore;

List->Sorted = true;

for(int i = 0; i < Memo1->Lines->Count; i++)

{

List->Add(Memo1->Lines->Strings[i]);

}

Memo1->Clear();

List->SaveToFile("NEW.txt"); //сохранение значения поля Memo без дубликатов строк в файл "NEW.txt"

Memo1->Text = List->Text; //в Memo будет уже отредактированное значение без дубликатов

Работа с файлами с использованием функций компонент

Многим визуальные компоненты и некоторые классы имеют доступ к функциям:

LoadFromFile("Имя файла");

SaveToFile("Имя файла");

Эти функции особенно удобны для работы с текстовыми фыйлами.

Примеры загрузки и сохранения файлов:

//Визуальный компонент TMemo:

Memo1->Lines->Clear();

Memo1->Lines->LoadFromFile("a.txt");

......

Memo1->Lines->SaveToFile("a.txt");

......

//Класс TStringList:

TStringList * ptStrintList;

ptStrintList->Clear();

ptStrintList=new TStringList();

ptStrintList->LoadFromFile("a.txt");

......

ptStrintList->SaveToFile("a.txt");

......

ptStrintList->Free();

//Визуальный компонент TListBox1:

ListBox1->Items->Clear();

ListBox1->Items->LoadFromFile("a.txt");

......

ListBox1->Items->SaveToFile("a.txt");

//Визуальный компонент TListBox1:

ComboBox1->Items->Clear();

ComboBox1->Items->LoadFromFile("a.txt");

......

ComboBox1->Items->SaveToFile("a.txt");

//Визуальный компонент TRichEdit:

RichEdit1->Lines->Clear();

RichEdit1->Lines->LoadFromFile("a.txt");

.....

RichEdit1->Lines->SaveToFile("a.txt");

И.т.д.

При использовании функции SaveToFile если файл не существует, то он будет создан. Во всех приведенных выше примерах создаются текстовые файлы. Компонент TRichEdit создает текстовый файл в формате .rtf, поэтому логичнее записать:

RichEdit1->Lines->SaveToFile("a.rtf");

Работа с текстовыми файлами с использованием методов перечисленных классов и компонент аналогична. Все они имеют счетчик строк:

Memo1->Lines->Count;

RichEdit1->Lines->Count;

ptStrintList->Count;

ListBox1->Items->Count;

ComboBox1->Items->Count;

Все компоненты позволяют удалять, вставлять и добавлять строки (пример удаления второй строки вставки на ее место новой строки и добовления в конец списка новой строки):

AnsiString vasS="Yes";

if(Memo1->Lines->Count >= 2)

{

Memo1->Lines->Delete(1);

Memo1->Lines->Insert(1,vasS);

}

Memo1->Lines->Add(vasS);

if(RichEdit1->Lines->Count >= 2)

{

RichEdit1->Lines->Delete(1);

RichEdit1->Lines->Insert(1,vasS);

}

RichEdit1->Lines->Add(vasS);

if(ptStrintList->Count >= 2)

{

ptStrintList->Delete(1);

ptStrintList->Insert(1,vasS);

}

ptStrintList->Add(vasS);

if(ListBox1->Items->Count >= 2)

{

ListBox1->Items->Delete(1);

ListBox1->Items->Insert(1,vasS);

}

ListBox1->Items->Add(vasS);

if(ComboBox1->Items->Count >= 2)

{

ComboBox1->Items->Delete(1);

ComboBox1->Items->Insert(1,vasS);

}

ComboBox1->Items->Add(vasS);

Содержимое строк можно получит по номеру строки n:

AnsiString vasS;

vasS=Memo1->Lines->Strings[n];

vasS=RichEdit1->Lines->Strings[n];

vasS=ptStrintList->Strings[n];

vasS=ListBox1->Items->Strings[n];

vasS=ComboBox1->Items->Strings[n];

Возможно присвоить некоторой строке текст для дальнейшей манипуляции содержимым текста как единой строкой и далее перенести исправленный текст опять в компоненты:

AnsiString vasS;

vasS=Memo1->Lines->GetText();

... манипуляции с текстом как единой строкой

Memo1->Lines->SetText(vasS.c_str());

RichEdit1->Lines->LoadFromFile("a.txt");

vasS=RichEdit1->Lines->GetText();

... манипуляции с текстом как единой строкой

RichEdit1->Lines->SetText(vasS.c_str());

vasS=ptStrintList->GetText();

... манипуляции с текстом как единой строкой

ptStrintList->SetText(vasS.c_str());

vasS=ListBox1->Items->GetText();

... манипуляции с текстом как единой строкой

ListBox1->Items->SetText(vasS.c_str());

vasS=ComboBox1->Items->GetText();

... манипуляции с текстом как единой строкой

ComboBox1->Items->SetText(vasS.c_str());

Кроме того компоненты TComboBox и TListBox позволяют (лучше в обработчике своих событий OnChange) получить доступ к выбранным строкам:

Соседние файлы в папке Лабораторні роботи