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

Вниз

Как удалить в текстовом файле разрыв страницы !?   Найти похожие ветки 

 
Alex77777 ©   (2005-06-05 15:33) [0]

Здравствуйте!

Как удалить в текстовом файле разрыв страницы !?
С примером желательно.

Спасибо


 
Palladin ©   (2005-06-05 17:47) [1]

Дашь четкое определение разрыва страницы в текстовом файле я награжу тебя примером.


 
Anatoly Podgoretsky ©   (2005-06-05 17:51) [2]

Palladin ©   (05.06.05 17:47) [1]
Это как раз не проблема, стандартный разделитель страницы. А вок как он работает с файлом неизвестно. Если например загоняет в единую строку то ReplaceStr


 
Alex77777 ©   (2005-06-05 19:55) [3]

Вот пример если что то он даст :))

текст
текст
текст

--разрыв страницы--

текст
текст
текст

--разрыв страницы--

и т.д.

Вот такой файл


 
Alex77777 ©   (2005-06-05 19:55) [4]

Удалено модератором


 
YurikGL ©   (2005-06-05 20:05) [5]


> Alex77777 ©   (05.06.05 19:55) [4]

Находишь pos-м подстроки "--разрыв страницы--" и с помощью delete их удаляешь...


 
ferr ©   (2005-06-05 21:32) [6]

Прям так и написано или просто пропущено место?


 
Anatoly Podgoretsky ©   (2005-06-05 21:40) [7]

ferr ©   (05.06.05 21:32) [6]
А не важно, может быть и так
текст
текст<разрыв>текст
текст


 
ferr ©   (2005-06-06 14:07) [8]

Для больших файлов string не очень пригодно. Вот, на досуге написал код побайтового сравнения + алг. Боуера и Мура. Если вы воспользуетесь этим кодом, то его надо проверять.
procedure DeleteInFile(const _FileName:string;_Str:string);
const
 Frame=65536;
var
 F1,F2: TFileStream;
 a: array[0..Frame-1] of Byte;
 b: array[0..Frame-1] of Byte;
 FSize,i,j,C,k,l,La,Pa,Pb: integer;
 Table:Array[Byte]of Byte;
 OK:LongBOOL;
begin
 l:=Length(_Str);
 for i:=0 to 255 do
   Table[i]:=l;
 for i:=1 to l-1 do
   Table[Byte(_Str[i])]:=l-i;
 F1:=TFileStream.Create(_FileName,fmOpenRead);
 F2:=TFileStream.Create(_FileName+"~",fmCreate);
 try
   FSize:=F1.Size;
   C:=0;
   if FSize>Frame then
   begin
     FSize:=FSize - Frame;
     C:=1;
     C:=C + FSize div (Frame-l+1);
     La:=FSize mod (Frame-l+1);
     FSize:=La;
     if La<>0 then C:=C+1;
   end else
   begin
     C:=1;
     La:=FSize;
   end;
   for j:=1 to C do
   begin
     if c<>1 then
     begin
       if j<>c then
       begin
         La:=Frame-l;
       end else
       La:=FSize;
     end else
     if C>1 then La:=Frame-l;
   F1.Read(a[0],La);
   Pb:=0;
   Pa:=0;
   i:=l-1;
   while i<La-1 do
   begin
     if Byte(_Str[l])<>a[i] then
       inc(i, Table[Byte(a[i])]) else
     begin
       k:=0;
       OK:=True;
       while (k<l-1)and OK do
       begin
         Inc(k);
         if a[i-k]<>Byte(_Str[l-k]) then OK:=False;
       end;
       if not OK then inc(i,Table[Byte(_Str[l-k])]) else
       begin
         System.Move(a[Pa],b[Pb],i+1-l-Pa);
         Pb:=Pb+i+1-Pa-l;
         Pa:=i+1;
         inc(i,l);
       end;
     end;
   end;
     System.Move(a[Pa],b[Pb],La-Pa);
     inc(Pb,La-Pa);
     F2.Write(b[0],Pb)
   end;
 finally
   F1.Free;
   F2.Free;
 end;
end;

P.S. Попробуйте ещё усложнить? :)



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

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

Наверх




Память: 0.47 MB
Время: 0.066 c
1-1117963373
Mihail
2005-06-05 13:22
2005.06.29
Глупейшая проблема


14-1117171979
MBo
2005-05-27 09:32
2005.06.29
Пятничные головоломные задачки


3-1115878478
kyn66
2005-05-12 10:14
2005.06.29
Число десятичных знаков для поля в таблице Access?


9-1111377409
Xeno
2005-03-21 06:56
2005.06.29
Как определить ФПС при использовании TGLFullScreenViewer


6-1112101349
Макс Т.
2005-03-29 17:02
2005.06.29
Автозаполнение и Twebbrowser





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский