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

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

Изменение 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],',',';')


Наверх

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