Другие языки программирования и технологии
Помогите пожалуйста с программой на DELPHI
Имеется текстовый файл. Программа должна записывать строки в файл, проверяя нет ли точно такой же строки в файле, если такая строка уже имеется, то выдавать соответствующее сообщение, если нет, то записывать её в файл.
procedureTForm1.Button1Click(Sender: TObject);
Var f,u:TextFile; // объявление файловой переменной
st,st2:String; // строковая переменная
s:boolean;
i:integer;
begin
AssignFile(f,'c:\1.txt'); // привязка названия файла к файловой переменной
{$I-} // отключение контроля ошибок ввода-вывода
Reset(f); // открытие файла для чтения
{$I+} // включение контроля ошибок ввода-вывода
AssignFile(u,'c:\2.txt'); // привязка названия файла к файловой переменной
{$I-} // отключение контроля ошибок ввода-вывода
Reset(u); // открытие файла для чтения
{$I+} // включение контроля ошибок ввода-вывода
While not EOF(f) do // пока не конец файла делать цикл:
begin
s:=false;
ReadLn(f,st); // читать из файла строку
While not EOF(u) do
begin
ReadLn(u,st2);
if st=st2 then
begin
Memo.lines[ i ]:=st1;
s:=true;
i:=i+1;
end;
end;
if s=false then //проверка на совпадение
begin
writeln(u,s1);//запизываем строку
s:=false;
end;
end;
CloseFile(f); // закрыть файл
CloseFile(u) // закрыть файл
end;
Добавь кнопку, Memo и вставь процедуру.
Должна работать :)
Var f,u:TextFile; // объявление файловой переменной
st,st2:String; // строковая переменная
s:boolean;
i:integer;
begin
AssignFile(f,'c:\1.txt'); // привязка названия файла к файловой переменной
{$I-} // отключение контроля ошибок ввода-вывода
Reset(f); // открытие файла для чтения
{$I+} // включение контроля ошибок ввода-вывода
AssignFile(u,'c:\2.txt'); // привязка названия файла к файловой переменной
{$I-} // отключение контроля ошибок ввода-вывода
Reset(u); // открытие файла для чтения
{$I+} // включение контроля ошибок ввода-вывода
While not EOF(f) do // пока не конец файла делать цикл:
begin
s:=false;
ReadLn(f,st); // читать из файла строку
While not EOF(u) do
begin
ReadLn(u,st2);
if st=st2 then
begin
Memo.lines[ i ]:=st1;
s:=true;
i:=i+1;
end;
end;
if s=false then //проверка на совпадение
begin
writeln(u,s1);//запизываем строку
s:=false;
end;
end;
CloseFile(f); // закрыть файл
CloseFile(u) // закрыть файл
end;
Добавь кнопку, Memo и вставь процедуру.
Должна работать :)
Если файл не большой, я бы рекомендовал загружать текст в компонент Memo и использовать функцию Pos:
Memo.Lines.LoadFromFile (FileName);
if Pos (String, Memo.Text) = 0 then
Memo.Lines.Add (String)
else ShowMessage ('Данная строка уже умеется в тексте');
Если текст большой, то можно либо читать из файла, либо поместить в буфер памяти и сделать цикл по каждой строчке - если совпадает, то выдать сообщение и остановить цикл, в противном случае цикл дойдет до конца и добавит строку.
Есть один подводный камень: а если искомая строка находится в двух строках? В первом случае (когда идет поиск сразу во всем тексте) строка будет найдена, во втором случае строка не будет найдена.
Memo.Lines.LoadFromFile (FileName);
if Pos (String, Memo.Text) = 0 then
Memo.Lines.Add (String)
else ShowMessage ('Данная строка уже умеется в тексте');
Если текст большой, то можно либо читать из файла, либо поместить в буфер памяти и сделать цикл по каждой строчке - если совпадает, то выдать сообщение и остановить цикл, в противном случае цикл дойдет до конца и добавит строку.
Есть один подводный камень: а если искомая строка находится в двух строках? В первом случае (когда идет поиск сразу во всем тексте) строка будет найдена, во втором случае строка не будет найдена.
Делаешь буфер в памяти, туда записываешь данные из файла, перед записью новой строки в файл ищешь ее сначала в буфере.
Похожие вопросы
- помогите пожалуйста составить программу на Delphi/
- Помогите пожалуйста с задачей в delphi !
- Помогите пожалуйста написать программу в с++
- помогите пожалуйста решить задачу по Delphi
- срочно помогите пожалуйста доделать прогу в delphi!!! дана символьная матрица. подсчитать количество различных элементов
- Помогите пожалуйста создать программу на Паскале. Заранее всем благодарен
- Помогите пожалуйста создать программу "Таймер" на СИ. Заранее всем благодарен!)
- Помогите пожалуйста составить программу на СИ++. Заранее всем БЛАГОДАРЕН!
- Помогите, пожалуйста, написать программу на делфи с ассемблерными вставками.
- Помогите, пожалуйста, написать программу на С++