![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
RichEdit клавишей Enter мы делаем конец строки [D7]
DIS © (2004-10-07 20:15:00)Мастера подскажите в RichEdit клавишей Enter мы делаем конец строки и начало новой, а как узнать как помечается конец строки. Мне это требуется для того, чтобы програмно удалить "обрыв" строки, и получить одну длинную строку. Надеюсь выразился понятно.
DIS (2004-10-10 00:31:00) [1]А, что если найденную строку записываем в файл2, а из файла 1 удаляем и повторяем заново. Подскажите как удалить строку какая функция?
Okcid (2004-10-09 17:14:00) [2]NO IDEAS...
DIS (2004-10-09 14:33:00) [3]ни каких мыслей интересных нет?
DIS (2004-10-08 22:11:00) [4]
procedure TForm1.Button2Click(Sender: TObject);подскажите если выполнить код мы выберем строку между словами slov1 и slov2 и убъем знак окончания строки
var
FileName: string;
Vf1, Vf2: TextFile;
i, j, s: string;
start : boolean;
Flags: TReplaceFlags;
begin
AssignFile( Vf1, '00.PRN' );
Read( Vf1 ); // читаем '00.PRN'
AssignFile( Vf2, 'work2.txt' );
Rewrite( Vf2); // создает и открывает файл 'work2.txt'
Reset( Vf1); { устанавливает указатель файла 'work1.txt' в начало файла}
Start := False;
while not SeekEof(Vf1) do
begin //цикл, пока не достигнут конец файла
Readln(Vf1, i);
if Pos('slov1 ', i) > 0 then
Start := True
else if Pos('slov2', i) > 0 then
Break
else if Start then
Writeln( Vf2, i );
end;
CloseFile( Vf1 );
CloseFile( Vf2 );
FileName := 'work2.txt' ;
with Form1.Memo1.Lines do begin
LoadFromFile(FileName); { load from file }
SaveToFile(ChangeFileExt(FileName, '.bak')); { save into backup file }
S:= ''+memo1.text+'';
Flags:= [ rfReplaceAll, rfIgnoreCase ];
S:= StringReplace( S, ''#13#10'', '', Flags);
memo1.text := s;
end;
end;
(тот который после нажатия на enter), а как лучше поступить если нужно продолжить перебор строк
т.е в тексте есть еще где встречается slov1 и slov2
Palladin (2004-10-08 01:41:00) [5]Okcid
olookin ©
так то оно так, вот только новую строку это не добавляет... видимость добавляет а вот новую строку не добавляет... ведь это всего лишь line feed и carret return...
Klopan (2004-10-08 01:10:00) [6]а если так:
label1.Caption:= StringReplace('lala lulu pampam', 'pam', '', [rfReplaceAll, rfIgnoreCase]);
DIS (2004-10-08 00:15:00) [7]исходя из выше изложенного используя этот код буду выделять отрезок между namesArray[arraycount] и ", удалять знак#13#10.
и так до конца документа. Надеюсь завтра все получится.
P.S. Надо будет еще выяснить конец файла.
DIS (2004-10-07 23:52:00) [8]вот от туда совет кажется от gero
> Как прочитать из открытыго файла, все, что допустим после
> слова "start" и перед словом "End" (к примеру, все где инть
> в середине файла)
var
S: string;
Start: Boolean;
List: TStringList;
...
Start := False;
while not SeekEof(F) do
begin
Readln(F, S);
if Pos('start', S) > 0 then
Start := True
else if Pos('end', S) > 0 then
Break
else if Start then
List.Add(S);
end;
DIS (2004-10-07 23:51:00) [9]Попробовал не работает, но предыдущий код работает, я тут посмотрел и нашел в форуме похожую тему:
// Проблема открытия текстового файла, если в нем есть кавычки! (Dextor 07.10.04 22:53)
// Как прочитать из открытыго файла, все, что допустим после слова "start" и перед словом "End" (к примеру, // все где инть в середине файла)
видимо в моем случае нужно смотреть отрезок текста
namesArray[arraycount] = "слова слова слова" - если между namesArray и "кавычками" встречается знак #13#10
заменять на пробел (#32), но как выделить этот отрезок.
Okcid (2004-10-07 23:27:00) [10]S:= StringReplace( S, ''#13#10'', '+chr(32)+', Flags);
Попробуй написать так:
s:=StringReplace(s, chr(10)+chr(13), chr(32), Flags);
DIS (2004-10-07 21:52:00) [11]Большое спасибо. Все работает, но результат меня еще больше озадачил. Никак не соображу, к примеру, есть три строки
namesArray[arraycount] = "слова слова
слова"
descArray[arraycount] = "другие слова"
если делать
Flags:= [ rfReplaceAll, rfIgnoreCase ];
S:= StringReplace( S, ''#13#10'', '+chr(32)+', Flags);
то получится каша из слов. Как бы удалить #13#10 после первой строки и привести к такому виду
namesArray[arraycount] = "слова слова слова"
descArray[arraycount] = "другие слова"
как вы думаете?
olookin (2004-10-07 20:51:00) [12][4] Okcid (07.10.04 20:49)
Ну я так написал для лучшей читаемости)
Ясно...
Okcid (2004-10-07 20:49:00) [13]Ну я так написал для лучшей читаемости)
olookin (2004-10-07 20:46:00) [14]Oksid прав на все 100... Только там пробела не надо - просто #13#10...
Okcid (2004-10-07 20:24:00) [15]Не знаю как в RichEdit, но вообще конец строки с переходом на новую строку помечается двумя байтами #13 #10...
Palladin (2004-10-07 20:19:00) [16]TRichEdit + F1
Там ты узнаешь много нового о RichEdit. Надеюсь выразился понятно.