![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Вот такой код:
Код:
function TForm1.DeleteLineBreaks(S: string): string;
var
Source, SourceEnd: PChar;
begin
Source := Pointer(S);
SourceEnd := Source + Length(S);
while Source < SourceEnd do
begin
case Source^ of
#10: Source^ := #32;
#13: Source^ := #32;
end;
Inc(Source);
end;
Result := S;
end;На входе - поле мемо, в нем несколько строк. Функция вызывается с параметром DeleteLineBreaks(memo1.Lines.Text). |
|
#2
|
||||
|
||||
|
Обязательно использовать PChar? Со строками и StringReplace это делается в 4 строки кода... хоть и ни фига не оптимально...
|
|
#3
|
|||
|
|||
|
глупый вопрос... а как?
![]() |
|
#4
|
||||
|
||||
|
Код:
S:=StringReplace(S, #10#13, ' ', [rfReplaceAll]); |
|
#5
|
|||
|
|||
|
Цитата:
Код:
Writeln(f, StringReplace(memo1.Lines.Text, #10#13, ' ', [rfReplaceAll])); |
|
#6
|
||||
|
||||
|
Код:
S:=StringReplace(S, #10#13, ' ', [rfReplaceAll]); S:=StringReplace(S, #13#10, ' ', [rfReplaceAll]); S:=StringReplace(S, #10, ' ', [rfReplaceAll]); S:=StringReplace(S, #13, ' ', [rfReplaceAll]); |
|
#7
|
|||
|
|||
|
Угу, а вот так в данном случае не проще:
Код:
function GetPlainText(AList : TStringList) : String; var I : Integer; begin Result := AList[0]; For I := 1 To AList.Count-1 Do Result := Result + ' ' + AList[i]; end; ... Writeln(f,GetPlainText(TStringList(Memo1.Lines))); |