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

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

Обработка строки [D7, WinXP]


Страницы:   1 2

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]

разбирать строку руками. ага.


Страницы:   1 2

Наверх

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