![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать такое? [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]);