Главная страница
    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.041 c
4-1115541375
psa247
2005-05-08 12:36
2005.06.29
RegOpenKey


3-1116842790
Cat
2005-05-23 14:06
2005.06.29
Поле Date 01.01.2005


3-1115803308
Lex_!
2005-05-11 13:21
2005.06.29
отображение Hint у DBGrid


6-1112005371
DICE
2005-03-28 14:22
2005.06.29
Подключение к онлайновой игре


1-1117621675
Леха
2005-06-01 14:27
2005.06.29
Не работает код заменящий переход с Таба на Ентер





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