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

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

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);
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;
подскажите если выполнить код мы выберем строку между словами slov1 и slov2 и убъем знак окончания строки
(тот который после нажатия на 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. Надеюсь выразился понятно.


Наверх

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