![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите некотрректно работает DelimitedText в StringGrid [WinXP]
Extar © (2007-01-10 14:33:00)В Мемо1 загружен текстовик (колонки разделенные табуляцией, в некоторых колонках содержатся пробелы)
Нужно разобрать в StringGrid по колонкам (по табуляциям но не по пробелам)
Использую:
StringGrid1.Rows[i].Delimiter:=#9;
StringGrid1.Rows[i].DelimitedText:=Memo1.Lines[j];
Разбирает и по табуляции и по пробелам.
Как разобрать игнорируя пробелы?
Или руками по символам в цикле каждую строку разбирать?
(естественно срочно нужно)
Delphi8
Спасибо заранее
Extar (2007-01-10 16:44:00) [1]
Var
memotexttmp:string;
Loginov Dmitry (2007-01-10 16:38:00) [2]> memotexttmp.Length
Это чего?
Extar (2007-01-10 16:30:00) [3]
memotexttmp:=memo1.Lines.Text;
for i:=1 to memotexttmp.Length do if memotexttmp[i]=' ' then memotexttmp[i]:='@';
memo1.Lines.Text:=memotexttmp;
Так почемуто не сработало, а реплэйс помог, спасибо
гостъ (2007-01-10 16:23:00) [4]Сорри,
Ну тогда как советовали выше, novill
var
s : String;
begin
s := Memo1.Text;
s := StringReplace ( s, ' ', '@', [ rfReplaceAll ] );
Memo1.Text := s;
Anatoly Podgoretsky (2007-01-10 16:13:00) [5]> гостъ (10.01.2007 16:06:11) [11]
Text это свойство, а не переменная
Extar (2007-01-10 16:11:00) [6]
for i:=1 to memo1.Lines.Text.Length do if memo1.Lines.Text[i]=' ' then memo1.Lines.Text[i]:='@';
Первое что попробовал.
Left side cannot be assignet to rigth side.. или в этом духе.
Вопрос в силе
гостъ (2007-01-10 16:06:00) [7]ошибся быстро :)
for I := 1 to Length ( Memo1.Text ) do
if ( Memo1.Text[I] =#32 ) then
Memo1.Text[I] := #64; {@}
гостъ (2007-01-10 16:04:00) [8]
for I := 1 to Length ( Memo1.Text ) do
if ( Memo1.Text[I] = $20 ) then
Memo1.Text[I] := $40; {@}
Extar (2007-01-10 15:58:00) [9]А как быстро в Мемо1.text заменить пробелы на другой символ?
(не успеваю уже сам)
Extar (2007-01-10 15:44:00) [10]>Юрий Зотов
Прочитал позже
Extar (2007-01-10 15:43:00) [11]>Novill
Спасибо, но результат такой же почемуто(
>Anatoly Podgoretsky
Буду знать, спасибо
Думаю сделать вот так тупо:
1)Заменить в Мемо1 пробелы на какой-нибудь символ типа @
2)Раскидать по колонкам стрингрид
3)пробежать по гриду и заменить @ на пробелы
Финт ушами)
Anatoly Podgoretsky (2007-01-10 15:27:00) [12]> Юрий Зотов (10.01.2007 15:06:05) [5]
По стандарту пробел спецсимвол, поэтому значения с пробелами должны браться в двойные кавычки, поспольку это не сделано, то придется прыгать с заменой
Юрий Зотов (2007-01-10 15:06:00) [13]Временно заменить пробелы каким-нибудь спецсимволом, а потом сделать обратную замену.
Anatoly Podgoretsky (2007-01-10 14:50:00) [14]> Extar (10.01.2007 14:33:00) [0]
Работает в соответствии с описанием и в соответствии с определением формата CSV
Твой текстовик не соответствует формату
novill (2007-01-10 14:44:00) [15]
rfReplaceAllслитно пишется
novill (2007-01-10 14:43:00) [16]ты всё с файлом возишься? :)
Ты ж не сказал что у тебя там проблеы есть.
Можно сделать еще вот таким способом (эта строчка вместо двух тех что выше)
StringGrid1.Rows[i].Text:=stringrelapce(Memo1.Lines[j],#9,#13#10,[rfReplac eAll]);
Extar (2007-01-10 14:34:00) [17]Сорри, *некорректно в сабже