Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2009, 21:22   #11
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Мне кажется что тут после чтения каждой строки надо проводить по ней поиск соответствует или нет, если соответствует то сохранять если нет, то и суда нет как говорится.
Ну както так
Код:
var
tf:TextFile;
begin

 AssignFile(tf,'c\:1.txt');

   Reset(tf);
memo1.clear;
    while not Eof(TF)  do
     begin
       
       Readln(TF, str);
if pos ('http:\',str)>0 then
    memo1.Lines.Add(str);
  
       end;

  CloseFile(tf);
end;
где в условии if pos ('http:\',str)>0 then добавить все ключевые моменты строки содержащие которые надо дописать к примеру условие может выглядеть так
Код:
if (pos ('http:\',str)>0) or (pos ('@',str)>0) or (pos ('чтото ещё',str)>0) then
ЗЫ это только пример условия уж свои поставте, а то думалка чтото уже не работает

Последний раз редактировалось vovk; 13.06.2009 в 21:27.
vovk вне форума Ответить с цитированием
Старый 13.06.2009, 22:40   #12
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Я так понимаю вам нужно из этого файлика достать e-mail и пароль?
Можно попробовать так:
Считаваем каждую строку из файла(показано ранее)
и сразу же применяем к ним данный кусочек кода:
Код:
if (pos('|',s)<>0) then
begin
 i:=pos('|',s);
 j:=i;
 repeat
  dec(i);
 until (s[i] = ' ') or (i = 1);
 mail:=copy(s,i+1,j-i);
 pass:=copy(s,j+1,Length(s)-j);
end;
Вот как-то так.
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 14.06.2009, 11:08   #13
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

надо достать e-mail и пароль вместе со строчкой.
тока на строку Readln(TF, str); ругается: (считаем, что это строка 41)
[Error] Unit1.pas(41): '(' expected but ')' found
[Error] Unit1.pas(42): Statement expected but 'VAR' found
[Error] Unit1.pas(49): Undeclared identifier: 'memo1'
[Error] Unit1.pas(53): '(' expected but ')' found
[Error] Unit1.pas(54): '(' expected but ')' found
[Error] Unit1.pas(55): Type of expression must be BOOLEAN
[Error] Unit1.pas(64): Statement expected but end of file found
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
мимо вне форума Ответить с цитированием
Старый 14.06.2009, 14:26   #14
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

так str надо ещё обьявить, я почемуто стёр ..
вот тут
Код:
var
tf:TextFile;
str:String;
begin
....
потом тут
Код:
AssignFile(tf,'c\:1.txt');
надо указать своё файл, или перенести нужный файл в C:\ и назвать 1.txt,
на форму надо поставить Memo с именем Memo1
переменные обьявляются до блока
begin
end;
то есть допустим по клику на кнопку это бы выглядело
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
tf:TextFile;
str:string;
begin
.............
............
.............
end;
остальное относится к условию как понял.. если поменяли условие покажите как это у вас выглядит
vovk вне форума Ответить с цитированием
Старый 16.06.2009, 16:38   #15
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

а подскажите еще.
вот я открываю файл
Код:
begin
if OpenDialog1.Execute
then AssignFile(F, OpenDialog1.FileName)
а как мне открыть ПАПКУ и работать с ней (с моими условиями), в которой лежат файлы.

и я открыл файл одной кнопкой. как мне сделать вторую кнопку, в которой можно выполнить любое условие.
если вставляю так (вторая кнопка)
Код:
procedure Tparser.Button2Click(Sender: TObject);
var
tf:TextFile;
str:string;
begin
Readln(tf, str);
if (pos ('данные',str)<>0) then
memo1.Lines.Add(str);
CloseFile(tf);
end;
то - на выходе ошибка

Последний раз редактировалось Stilet; 16.06.2009 в 17:02.
мимо вне форума Ответить с цитированием
Старый 16.06.2009, 17:03   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
на выходе ошибка
Конечно ошибка. Ты же не открыл файл.
Код:
AssignFile(tf, имя файла); reset(tf);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.06.2009, 17:51   #17
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

но я открываю файл первой кнопкой - Button1
а условие хочу задать второй кнопкой.
мимо вне форума Ответить с цитированием
Старый 16.06.2009, 17:57   #18
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Ну тогда надо переменную tf переместить в секцию private формы с этими двумя кнопками, чтобы переменная была одна во всем проекте:
Код:
private
 tf: TextFile;
И не объявлять переменную в обработчиках кнопок:
Код:
procedure Tparser.Button2Click(Sender: TObject);
var
 str:string;
begin
 Readln(tf, str);
 if (pos ('данные',str)<>0) then
  memo1.Lines.Add(str);
 CloseFile(tf);
end;
Но, зачем вы открываете файл одной кнопкой, а другой проверяете первую строчку? Не лучше ли будет все сделать в одной кнопке как сказал Stilet?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 16.06.2009, 18:02   #19
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Тогда переменную F ктоторую используеш тутъ
Код:
begin
if OpenDialog1.Execute
then AssignFile(F, OpenDialog1.FileName)
обьявляй тв разделе interface

тут
Код:
var
 Form1: TForm1;
 F:TextFile;
implementation
а при клике на второй кнопке её же и используй
Код:
procedure Tparser.Button2Click(Sender: TObject);
var
str:string;
begin
Readln(F str);
if (pos ('данные',str)<>0) then
memo1.Lines.Add(str);
CloseFile(F);
end;


неУспел
vovk вне форума Ответить с цитированием
Старый 17.06.2009, 11:31   #20
мимо
Пользователь
 
Регистрация: 13.06.2009
Сообщений: 61
По умолчанию

спасибо за ответы.
еще вопросик.
вот. выводятся у меня результат. нужно убрать дубликаты.
первая кнопка- открывает файл. выполняет условие
Код:
procedure Tparser.Button3Click(Sender: TObject);
var
F:TextFile;
S:string;
begin
if OpenDialog1.Execute
then AssignFile(F, OpenDialog1.FileName)

if (pos ('данные',S)<>0) then
Memo1.Lines.Add(S);

end;
вторая кнопка - удаляет дубли
Код:
procedure Tparser.Button2Click(Sender: TObject);
 var
   sl: TStringList;
 begin
   sl := TStringList.Create;
   try
     with sl do
     begin
      Sorted := True;
      Duplicates := dupIgnore;
       Add(Memo1.Text);
     end;
     Listbox1.Items.Assign(sl);
   finally
     sl.Free;
   end;
 end;
но выводит их у меня в Listbox1.
как мне совместить все это в одну кнопку? и вывод в Memo1?
заранее спасибо

и доп вопрос:
Код:
procedure Tparser.Button1Click(Sender: TObject);
  var
  EditFile: string;
begin
 if OpenDialog2.Execute then
  begin
   EditFile:=OpenDialog2.FileName;
   Memo1.Lines.LoadFromFile(EditFile);
  end;
где в опциях стоит - ofAllowMultiSelect, однако открывается только один файл ( почему не все сразу?

Последний раз редактировалось Stilet; 18.06.2009 в 12:20.
мимо вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа С TXT ken8888 Помощь студентам 11 02.06.2009 10:04
Работа с txt файлами! (C)stalin(Cpp) Общие вопросы C/C++ 5 25.10.2008 17:19
работа с txt файлом ShenDy Общие вопросы C/C++ 1 08.04.2008 22:55
Работа с текстовыми TXT MAKEDON Общие вопросы Delphi 2 20.12.2007 04:30
Работа со строками txt документa Paul Общие вопросы Delphi 5 11.04.2007 12:47