![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разделители [D7, XP]
lobach © (2007-03-26 13:19:00)Скажите пожалуйста, как прочитать строку типа
имя:::фамилия:::год.рождения
в 3 переменные чтоб ::: было разделителем???
Kolan (2007-03-26 23:05:00) [1]> а delimiter это чар
Да, забыл.
Loginov Dmitry (2007-03-26 22:59:00) [2]> Если бы не это, то через DelimitedText было бы, безусловно,
> корректнее.
Напротив. При работе со StringList'oм проблем будет больше. Правильнее использовать в данной ситуации именно StringReplace.
_Аноним (2007-03-26 22:49:00) [3]
> Kolan ©
У него там три чара, а delimiter - это чар.
Если бы не это, то через DelimitedText было бы, безусловно, корректнее.
Можно, конечно, предварительно натравить на источник StringReplace. если бы была уверенность, что в есть какой то символ, которого точно нет в данных.
Kolan (2007-03-26 22:43:00) [4]TStrings.DelimitedText ?
Arm79 (2007-03-26 21:26:00) [5]примерно так:
TStringList.Text := StringReplace(Stroka, ':::', #13#10, [rfReplaceAll]);
Str1 := TStringList[0];
Str2 := TStringList[1];
Str3 := TStringList[2];
Нуб (2007-03-26 15:11:00) [6]
> Desdechado ©
а какой у Вас фотык и что за велик ? , если не секрет
Desdechado (2007-03-26 15:07:00) [7]> можешь так попробывать
Пробовать можешь, как хочешь. На луну вон из пушки летали.
Нуб (2007-03-26 14:36:00) [8]можешь так попробывать
procedure TForm1.Button1Click(Sender: TObject);
var str: string;
i, step,k : integer;
arrstr : array [1..3] of string;
begin
str := 'aa223a:::daaad:::ccasdcc';
step :=1;
k := 1;
for i := 1 to Length(str) do begin
if (str[i] = ':') and (str[i-1] <> ':') and (str[i-2] <> ':')then begin
arrstr[k] := copy(str,step,i-step);
step := i+3;
inc(k);
end;
end;
arrstr[k] := copy(str,step,Length(str)-step+1);
Label1.Caption := arrstr[1]+arrstr[2]+arrstr[3];
end;
RASkov (2007-03-26 14:23:00) [9]uses ..., RxStrUtils; //входит в библиотеку RxLib
const Str= 'имя:::фамилия:::год.рождения'; Ch = [':'];
var N, J: Integer; ArrS: array of String;
begin
J:=WordCount(Str, Ch);
SetLength(ArrS, J);
for N := 1 to J do ArrS[N-1]:=ExtractWord(N, Str, Ch);
end;
если нужно могу выдерныть оттуда эти функции... хотя самому написать недолго с использованием предложенных функций.
Desdechado (2007-03-26 13:50:00) [10]lobach © (26.03.07 13:33) [2]
И с какого боку это влияет?
_Knight_ (2007-03-26 13:37:00) [11]Pos+Copy+Delete
lobach (2007-03-26 13:33:00) [12]Неизвестно сколько какой длинны будет каждая переменная.
Desdechado (2007-03-26 13:21:00) [13]Pos + Copy