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

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

Как сделать такое? [D6]


maxim2 ©   (2002-09-12 09:45:00) 

Привет всем!
Возникла проблемка никак додуматься немогу.
Короче есть строка типа "Данное1___Данное2____Данное3_______Д4"
Так вот мне нодо из этой строки сделать вот такую
"Данное1,Данное2,Данное3,Д4"
то есть все пробелы между данными надо заменить на 1 запятую.

Подскажите у кого есть идей.


maxim2   (2002-09-12 12:02:00) [1]

Cпасибо всем!


Dimka Maslov   (2002-09-12 10:05:00) [2]

function ReplaceChars(Str: string; OldChar, NewChar: Char): string;
var
P1, P2: PChar;
S: String;
begin
Result:="";
S:=PChar(@Str[1]);
P1:=PChar(S);
repeat
P2:=StrPos(P1, PChar(String(OldChar)));
if P2 = nil then begin
Result:=Result+P1;
Break;
end;
P2^:=#0;
Result:=Result+P1+NewChar;
P1:=P2;
Inc(P1);
while (P1^ = OldChar) and (P1^<>#0) do Inc(P1)
until false;
end;



ReplaceChars("Данное1___Данное2____Данное3_______Д4", "_", ",");


Kaban   (2002-09-12 09:57:00) [3]

while pos("__"{два пробела}, S)>0 do
Delete(S, pos("__"{два пробела}, S),1);
while pos("_"{один пробел}, S)>0 do
S[pos("_"{один пробел}, S)]:=",";


MBo   (2002-09-12 09:56:00) [4]

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
k:integer;
begin
//1 способ

s:="aa aaa sfjdkjh kjkjk";
with tstringlist.create do begin
commatext:=s;
s:=commatext;
free;
end;
label1.caption:=s;

//Способ 2

s:="aa aaa sfjdkjh kjkjk";
k:=pos(" ",s);
while k>0 do begin
delete(s,k,1);
k:=pos(" ",s);
end;
s:=stringreplace(s," ",",",[rfReplaceAll]);
label2.caption:=s;


Lord Warlock   (2002-09-12 09:54:00) [5]

uses SysUtils; Новая строка:=StringReplace(Старая строка, StringOfChar("_",количечтво подчеркиваний), ",", [rfReplaceAll]);


Наверх

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