![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Про СТРОКУ с разделителями [D6, Win95/98, WinME, NT4, Win2k, WinXP]
officeman © (2004-07-05 10:33:00)Какая там версия Delphi последняя. ох уж и со счета сбился. решил пока на 6 версии остановится. так как в 7 ничего нового ненашёл. кроме интернет и бд компонентов. наверно плохо искал =)
есть некотороая строка. только мы незнаем заранее сколько будет разделителей. может 5, а может 15.
1111;22222;33333;44444;6666;5555
Нужно читать текстовый файл EOF(f) и разбивать каждую строку на подстроки Perem='1111', потом Perem='22222' и тд.
потом next строка.
в дельфи 5 был strutils.pas... там всё было нормально выложено.
но в 6 версии я ненашёл. и компонентов тоже не встречал. =(
нехотелось бы изобретать колесо. а то так повозку и непридумаем.
Поделитесь своими кодами(решениями).
с Уважением, Officeman
officeman (2004-07-05 12:15:00) [1]Благодарю!
p.s. давно я не посещал любимый форум http://delphimaster.ru/
т.к. программирую сейчас под 1С.бухгалтерию. Прошло уже более полугода. а Мастера ДЕЛЬФИ не перевелись ещё! ЕСТЬ СИЛА! =))
panov (2004-07-05 12:02:00) [2]procedure ParseString(const s: String;var List: TStringList);
var
i,bPos,Counter: Integer;
begin
List.Clear;
if s='' then Exit;
bPos := 1;
for i := 1 to Length(s) do
begin
if s[i]=';' then
begin
List.Add(Trim(Copy(s,bPos,i-bPos)));
Inc(Counter);
bPos := i+1;
end;
end;
List.Add(Trim(Copy(s,bPos,Length(s)-bPos+1)));
end;
function GetField(const s: String;const NumField: Integer): String;
var
i,bPos,Counter: Integer;
begin
Result := '';
if s='' then Exit;
if NumField<=0 then Exit;
Counter := 1;
bPos := 1;
for i := 1 to Length(s) do
begin
if s[i]=';' then
begin
if Counter=NumField then
begin
Result := Trim(Copy(s,bPos,i-bPos));
Exit;
end;
Inc(Counter);
bPos := i+1;
end;
end;
if Counter=NumField then Result := Trim(Copy(s,bPos,Length(s)-bPos+1));
end;
Amoeba (2004-07-05 11:38:00) [3]Скачай библиотеку QStrings (содержит массу ф-ий и процедур для работы со строками)
http://swiss.torry.net/vcl/vcltools/text/adqstrings.zip
и используй ц-ию Q_StrTok1
Это именно то, что тебе нужно.
Семен Сорокин (2004-07-05 10:40:00) [4]Pos
TStringList.CommaText
F1