Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Чтение файла, Pos(x,y,z) [D6, Win2k]


Ragazor ©   (2004-08-20 20:24:00) 

Делаю так (лишнее вытер)

procedure TForm1.Button1Click(Sender: TObject);
var f:TEXTFILE; news,all:ansistring;
begin
Filen:=GetcurrentDir+'\11111.htm';
Assignfile(f,fileN);
Reset(f);
while not EOF(f) do begin
readln(f,S);
all:=all+s;
end;
closefile(f);
c1:=POS('<TD bgColor=#efefef colSpan=2>',all);
c2:=POS('<BR></FONT></TD></TR></TBODY></TABLE>',all)+30;
news:=copy(all,c1,length(all)-c2-c1);
memo1.Lines.Add(news); - и в итоге пустая переменная news
end;

Коорче идея такая, процедура должна считать весь файл в одну строку, потом найти 2 куска текста через POS. Куски это начало и конец того что я хочу вырезать из файла.Определяется позиция начала и конца вырезания, потом через СОРУ вырезаца должно - а не хочет.

В чем ошибка, помогите разобраться.


PVOzerski   (2004-08-24 11:07:00) [1]

GetcurrentDir и ExtractFilePath(ParamStr(0)) могут вообще разные директории вернуть, ведь текущей директорией для приложения вовсе не обязана быть та, в которой находится его исполняемый файл. Так что автору виднее. Плохо лишь то, что если текущим каталогом окажется корневой, при таком подходе бэкслэш "сдвоится".


Ragazor   (2004-08-22 00:27:00) [2]

А почему GetcurrentDir ужаснее
ExtractFilePath(ParamStr(0)) ???


KADAN   (2004-08-21 03:09:00) [3]


> А уж насчет GetCurrentDir'а это таки да... Привыкать нужно
> к такому
> ExtractFilePath(ParamStr(0))+'1111.html';

или просто Filen:='11111.html'


Sergey Kaminski   (2004-08-20 23:57:00) [4]

>>очень важно весь файлик в строку запихать.

свойство Textкак раз и есть одна строка.

>> а с ним чуть больще писанины.

ну это кому как

А уж насчет GetCurrentDir'а это таки да... Привыкать нужно к такому
ExtractFilePath(ParamStr(0))+'1111.html';

или "чуть больше писанины"? ;)


Fay   (2004-08-20 23:29:00) [5]

Мне ваще сегодня лениво за тебя что-либо писать, но GetcurrentDir - это ужасно. УЖАСНО.
Понятно?


Ragazor   (2004-08-20 23:28:00) [6]

насчет Тстрингс: мне очень важно весь файлик в строку запихать.
а с ним чуть больще писанины.


Ragazor   (2004-08-20 23:26:00) [7]

с1 с2 нормальные числа все находит что нада.

все разобрался, математику плохо учил...эххх
Копирует отлично!


Sergey Kaminski   (2004-08-20 22:57:00) [8]

А посмотреть в отладчике значения c1,c2?

Кроме того, лучше файл закачать в TStrings:


var
 AStrings: TStrings;
...
 AStrings := TStringList.Create;
 try
   AStrings.LoadFromFile (AFileName);
   c1 := Pos (Pattern1,AStrings .Text);
   c2 := Pos (Pattern1,AStrings .Text);
   if (c1<>0) and (c2<>0) then
     ....
   else
     ...
 finally
   AString.Free;
 end;
...

ну, в таком духе и легче разобраЦЦа


Наверх

Титульная страница Поиск, карта сайта Написать письмо