Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.03.04;
Скачать: CL | DM;

Вниз

Помогите некотрректно работает DelimitedText в StringGrid   Найти похожие ветки 

 
Extar ©   (2007-01-10 14:33) [0]

В Мемо1 загружен текстовик (колонки разделенные табуляцией, в некоторых колонках содержатся пробелы)
Нужно разобрать в StringGrid по колонкам (по табуляциям но не по пробелам)

Использую:

StringGrid1.Rows[i].Delimiter:=#9;
StringGrid1.Rows[i].DelimitedText:=Memo1.Lines[j];


Разбирает и по табуляции и по пробелам.
Как разобрать игнорируя пробелы?
Или руками по символам в цикле каждую строку разбирать?
(естественно срочно нужно)
Delphi8

Спасибо заранее


 
Extar ©   (2007-01-10 14:34) [1]

Сорри, *некорректно в сабже


 
novill ©   (2007-01-10 14:43) [2]

ты всё с файлом возишься? :)

Ты ж не сказал что у тебя там проблеы есть.

Можно сделать еще вот таким способом (эта строчка вместо двух тех что выше)

StringGrid1.Rows[i].Text:=stringrelapce(Memo1.Lines[j],#9,#13#10,[rfReplac eAll]);


 
novill ©   (2007-01-10 14:44) [3]

rfReplaceAll слитно пишется


 
Anatoly Podgoretsky ©   (2007-01-10 14:50) [4]

> Extar  (10.01.2007 14:33:00)  [0]

Работает в соответствии с описанием и в соответствии с определением формата CSV
Твой текстовик не соответствует формату


 
Юрий Зотов ©   (2007-01-10 15:06) [5]

Временно заменить пробелы каким-нибудь спецсимволом, а потом сделать обратную замену.


 
Anatoly Podgoretsky ©   (2007-01-10 15:27) [6]

> Юрий Зотов  (10.01.2007 15:06:05)  [5]

По стандарту пробел спецсимвол, поэтому значения с пробелами должны браться в двойные кавычки, поспольку это не сделано, то придется прыгать с заменой


 
Extar ©   (2007-01-10 15:43) [7]

>Novill
Спасибо, но результат такой же почемуто(

>Anatoly Podgoretsky
Буду знать, спасибо

Думаю сделать вот так тупо:
1)Заменить в Мемо1 пробелы на какой-нибудь символ типа @
2)Раскидать по колонкам стрингрид
3)пробежать по гриду и заменить @ на пробелы
Финт ушами)


 
Extar ©   (2007-01-10 15:44) [8]

>Юрий Зотов
Прочитал позже


 
Extar ©   (2007-01-10 15:58) [9]

А как быстро в Мемо1.text заменить пробелы на другой символ?
(не успеваю уже сам)


 
гостъ   (2007-01-10 16:04) [10]


for I := 1 to Length ( Memo1.Text ) do
 if ( Memo1.Text[I] = $20 ) then
   Memo1.Text[I] := $40; {@}


 
гостъ   (2007-01-10 16:06) [11]

ошибся быстро :)


for I := 1 to Length ( Memo1.Text ) do
 if ( Memo1.Text[I] =#32 ) then
   Memo1.Text[I] := #64; {@}


 
Extar ©   (2007-01-10 16:11) [12]

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.. или в этом духе.

Вопрос в силе


 
Anatoly Podgoretsky ©   (2007-01-10 16:13) [13]

> гостъ  (10.01.2007 16:06:11)  [11]

Text это свойство, а не переменная


 
гостъ   (2007-01-10 16:23) [14]

Сорри,
Ну тогда как советовали выше, novill


var
 s : String;
begin
 s := Memo1.Text;
 s := StringReplace ( s, " ", "@", [ rfReplaceAll ] );
 Memo1.Text := s;


 
Extar ©   (2007-01-10 16:30) [15]

memotexttmp:=memo1.Lines.Text;
for i:=1 to memotexttmp.Length do if memotexttmp[i]=" " then memotexttmp[i]:="@";
memo1.Lines.Text:=memotexttmp;

Так почемуто не сработало, а реплэйс помог, спасибо


 
Loginov Dmitry ©   (2007-01-10 16:38) [16]

> memotexttmp.Length


Это чего?


 
Extar ©   (2007-01-10 16:44) [17]

Var
memotexttmp:string;



Страницы: 1 вся ветка

Текущий архив: 2007.03.04;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.043 c
3-1165837797
Vlad Oshin
2006-12-11 14:49
2007.03.04
просмотреть таблицу с сервера MySQL (Er:Invalid Data Translation)


2-1171393328
VLS1
2007-02-13 22:02
2007.03.04
OR, AND, вычисление флагов


15-1170661612
xayam
2007-02-05 10:46
2007.03.04
DelphiTo


15-1171202518
Kerk
2007-02-11 17:01
2007.03.04
25й час


2-1171122427
verywell
2007-02-10 18:47
2007.03.04
if, exit,... что лучше?