Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

Чтение файла, Pos(x,y,z)   Найти похожие ветки 

 
Ragazor   (2004-08-20 20:24) [0]

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

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. Куски это начало и конец того что я хочу вырезать из файла.Определяется позиция начала и конца вырезания, потом через СОРУ вырезаца должно - а не хочет.

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


 
Sergey Kaminski ©   (2004-08-20 22:57) [1]

А посмотреть в отладчике значения 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;
...

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


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

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

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


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

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


 
Fay ©   (2004-08-20 23:29) [4]

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


 
Sergey Kaminski ©   (2004-08-20 23:57) [5]

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

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

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

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

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

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


 
KADAN ©   (2004-08-21 03:09) [6]


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

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


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

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


 
PVOzerski ©   (2004-08-24 11:07) [8]

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.023 c
3-1092115903
MadGhost
2004-08-10 09:31
2004.09.05
Есть ли такой SQL-сервер (маленький) чтобы его можно было вместе


11-1080221274
user
2004-03-25 16:27
2004.09.05
Как поднять скрол в верхнюю позицию не мышкой а програмно?


3-1092021254
Максим
2004-08-09 07:14
2004.09.05
Потключение по сети


6-1088668648
Prosto Imya
2004-07-01 11:57
2004.09.05
Как отправить файл без сервера


4-1090246123
Sasha73
2004-07-19 18:08
2004.09.05
Убрать чужую иконку из SystemTray ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский