![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменение StringGrid [D5, WinXP]
Марат © (2004-08-12 09:21:00)Здравстуйте, мастера. Вопрос такой. Можно ли в StringGrid с одним столбцом изменить символ на другой символ, например "," на ";"?
Марат (2004-08-12 16:05:00) [1]Я конечно понимаю, что метод с сохранением в *.csv не самый лучший, но через F1Book в сетевой версии ничего не получилось может быть кто и помнит тот вопрос. Через OLE-объект получилось плохо потому что проект изменяется почти каждый день, и каждый раз ковырять его нет сил. Поэтому был выбран на мой взгляд самый простой способ.
begin...end (2004-08-12 15:54:00) [2]
> [18] GrayFace © (12.08.04 15:31)
http://sunny.aha.ru/~vinsk/dic.htm
Действительно, нету почти.
> $�@!!!
А может, восклицательные знаки тут тоже... того...
GrayFace (2004-08-12 15:31:00) [3]Рамиль © (12.08.04 12:49) [12]
$@!!!
Кто-нибудь знает мат из 4 букв?
Марат (2004-08-12 14:14:00) [4]Попробую объяснить. В моей задаче проходят заявления клиентов. Этапов прохождения может быть много и на каждый из них есть примечание которое из Memo-поля пишется в базу. Моя задача заключается в следующем при поиске того или иного заявления я должен собрать все эти примечания в одну кучу и закинуть в Excel. Делаю я это через *.csv. И т.к. народ у нас разный, то при преобразовании в Excel появляется вместо одной строчки 2 и более из-за ";" и примечание, которое должно быть в одной ячейке разрывается на 2 и более из-за "," и еще выяснилось что и из-за #10,#13 тоже происходит перенос на следующую строку. Я вот сейчас попробовал данный алгоритм, но у меня почему-то не получилось, хотя на транскрипцую никаких жалоб.
for i:=0 to SG_Note.RowCount-1 do
begin
StringReplace(SG_Note.Cells[0,i],',','_',[rfReplaceAll]);
StringReplace(SG_Note.Cells[0,i],';','_',[rfReplaceAll]);
StringReplace(SG_Note.Cells[0,i],#10,'_',[rfReplaceAll]);
StringReplace(SG_Note.Cells[0,i],#13,'_',[rfReplaceAll]);
StringReplace(SG_Note.Cells[0,i],#9,'_',[rfReplaceAll]);
end;
begin...end (2004-08-12 13:29:00) [5]Есть символы перевода строки (#10) и возврата каретки (#13).
только откуда они могут появиться в StringGrid'е - там же обычно однострочные ячейки, как я понимаю?
Марат (2004-08-12 13:27:00) [6]Может неправильно задал вопрос. Попробую по-другому. Как будет выглядеть оператор замены нажатия Enter на, например,'*'
StringReplace(StringGrid1.Cells[1,1], ??Enter??, '*', [rfReplaceAll]);
Марат (2004-08-12 13:00:00) [7]Классно! Но в догонку есть еще вопрос. А если есть символ нажатие Enter, то как тогда будет выглядеть этот оператор?
Рамиль (2004-08-12 12:54:00) [8]
> Ну так все одно ругается.
Скобку поставь, не будет ругаться.
StringReplace(StringGrid1.Cells[1,1], ',', ';', [rfReplaceAll]);
Марат (2004-08-12 12:49:00) [9]Ну так все одно ругается.
Рамиль (2004-08-12 12:49:00) [10]function StringReplace(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;
$@!!!
begin...end (2004-08-12 12:48:00) [11]
> [8] Марат (12.08.04 12:45)
> StringReplace(SG.Cells[0,i],',',';');
StringReplace(SG.Cells[0,i], ',', ';', [rfReplaceAll]
P.S. Описание StringReplace посмотри.
begin...end (2004-08-12 12:46:00) [12]
> [7] Марат (12.08.04 12:39)
А... Ну так надо писать не StringGrid[I, J], а StringGrid.Cells[I, J]
Марат (2004-08-12 12:45:00) [13]Вру.
StringReplace(SG.Cells[0,i],',',';');
Ругается Not enough actual parameters
Марат (2004-08-12 12:39:00) [14]Ругается Class does not have a default property
begin...end (2004-08-12 12:22:00) [15]Хм... Видимо, в Delphi 5 нету этого. StringReplace не подойдёт?
Марат (2004-08-12 12:17:00) [16]Ругается File not found 'StrUtils.dcu'
begin...end (2004-08-12 12:12:00) [17]
> [3] Марат (12.08.04 12:10)
uses StrUtils;
Марат (2004-08-12 12:10:00) [18]Ругается Undeclared identifier 'AnsiReplaceText'
Anatoly Podgoretsky (2004-08-12 09:33:00) [19]В StringGrid хранятся только строки, поэтому можно.
KADAN (2004-08-12 09:29:00) [20]AnsiReplaceText(Stringgrind[i,j],',',';')