![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка строки [D7, WinXP]
DiX © (2006-10-22 13:47:00)К примеру есть строка
12:20 Вася-Петя 1.12 1.4 1.23 1.53
для преобразования ее в StringList использую следующее
StringList.Text:=StringReplace(S,' ',#13#10,[rfReplaceAll]);
проблема в следующем: вместо Вася и Петя может быть Вася Пупкин и Петя Жопкин и преобразование происходит не правильно т.к. надо, чтобы Вася Пупкин и Петя Жопкин были в одной строке. Подскажите как быть.
default (2006-10-23 13:43:00) [21]посмотрите код делимитедтекста
Ketmar (2006-10-23 13:27:00) [22]>[9] Palladin(c) 23-Oct-2006, 13:10
>TStringList разносит буквы в по строкам... скотина такая...
ой. а я думал, так и надо...
Palladin (2006-10-23 13:10:00) [23]TStringList разносит буквы в по строкам... скотина такая...
Ketmar (2006-10-23 12:39:00) [24]>[7] Loginov Dmitry(c) 23-Oct-2006, 09:27
>> не замечал, примерчик можно?
и что тут некорректного? не понял...
Loginov Dmitry (2006-10-23 09:27:00) [25]> не замечал, примерчик можно?
procedure TForm1.Button1Click(Sender: TObject);
begin
with TStringList.Create do
begin
DelimitedText := 'a b c';
ShowMessage(Text);
Free;
end;
end;
> QuoteChar:=#0;
Не знал :(
Palladin (2006-10-23 06:32:00) [26]
> нежелательная обработка пробелов
не замечал, примерчик можно?
> екорректная обработка символа '"', стоящего в начале строки)
QuoteChar:=#0;
Loginov Dmitry (2006-10-22 23:17:00) [27]guav © (22.10.06 18:45) [4]
StringList.Delimeter := '|';
StringList.DelimetedText := '12:20|Вася Пупкин-Петя Жопкин|1.12|1.4|1.23|1.53'
Вряд-ли это сработает. Уж лучше так:
StringList.Text:= StringReplace('12:20|Вася Пупкин-Петя Жопкин|1.12|1.4|1.23|1.53', '|',#13#10,[rfReplaceAll]);
Вообще, теперь я очень не рекомендую юзать свойство StringList.DelimetedText (дюже хлопот с ним много (нежелательная обработка пробелов, некорректная обработка символа '"', стоящего в начале строки)).
guav (2006-10-22 18:45:00) [28]1.
StringList.Text:= StringReplace('12:20 "Вася Пупкин-Петя Жопкин" 1.12 1.4 1.23 1.53',#13#10,[rfReplaceAll]);
2.
StringList.Delimeter := '|';
StringList.DelimetedText := '12:20|Вася Пупкин-Петя Жопкин|1.12|1.4|1.23|1.53'
3.
> [1] Ketmar © (22.10.06 13:48)
> разбирать строку руками. ага.
DiX (2006-10-22 18:18:00) [29]Anatoly Podgoretsky
В том то и дело, что нужно, чтобы этот пробел игнорировался
Anatoly Podgoretsky (2006-10-22 16:58:00) [30]Зачем же ты меняешь пробел между Вася и Пупкин?
Ketmar (2006-10-22 13:48:00) [31]разбирать строку руками. ага.