![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем доброго времени суток. Имеется проблема, которую не могу решить уже несколько дней. Есть текстовой файл с данными такого вида:
Код:
stroka1 stroka2 stroka3 stroka4 Последний раз редактировалось babay89, 20.09.2011 в 13:17. |
#2
|
||||
|
||||
![]() несколько непонятно по вашему примеру, что является разделителем строк?
Если пробел, то это не 4 строки, а одна длинная. Непонятно так-же что собственно парсить? Получить на выходе 4 слова или нечто другое? Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() Да, разделитель пробел, нужно как-то спарсить через пробел эти данные.
|
#4
|
||||
|
||||
![]() Не уверен что это то что вы хотите, но видимо так:
Код:
program Project1; {$APPTYPE CONSOLE} uses SysUtils, Classes, Dialogs; Var SL: TStringList; begin SL := TStringList.Create; SL.LoadFromFile('c:\1\test.txt'); SL.Text := StringReplace(SL.Text,#32,#13,[rfReplaceAll]); ShowMessage(IntToStr(SL.Count)); SL.Free; end. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
![]() Почти оно, но мне нужно не количество строк, а сами строки
![]() |
#6
|
|||
|
|||
![]() возможно ли вообще такое запилить на delphi??? На с++ видел такое.
|
#7
|
|||
|
|||
![]() SL.strings[1]
вобще http://www.google.ru/search?q=delphi+split |
#8
|
|||
|
|||
![]() Цитата:
|
#9
|
||||
|
||||
![]() Цитата:
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#10
|
|||
|
|||
![]() Цитата:
|
#11
|
|||
|
|||
![]() Цитата:
|
#12
|
||||
|
||||
![]() Let me show you:
Код:
procedure ParseTextFile(const FileName: String; var UserName, UserPass, Server: String); var AStrings: TStrings; begin AStrings:=TStringList.Create; try AStrings.LoadFromFile(FileName); AStrings.Text:=StringReplace(AStrings.Text, ' ', #13#10, [rfReplaceAll, rfIgnoreCase]); UserName:=AStrings[0]; UserPass:=AStrings[1]; Server:=AStrings[2]; finally AStrings.Free; end; end; procedure TForm1.FormCreate(Sender: TObject); var UserName, UserPass, Server: String; begin ParseTextFile('txtfile.txt', UserName, UserPass, Server); Edit1.Text:=UserName; Edit2.Text:=UserPass; Edit3.Text:=Server; end; http://data.cod.ru/124709 Пишу программы за еду. __________________ |
#13
|
||||
|
||||
![]() набирал на коленках, так что могут быть недочеты
Код:
var TextFile:Tstringlist; TS:Tstringlist; i:integer; log,pas,serv:string; begin TextFile:=Tstringlist.create; TextFile.loadfromfile('c:\temp\1.txt'); //файл с данными, в формате: log pas serv TS:=Tstringlist.create; TS.Delimiter := ' '; TS.DelimitedText := TextFile.text; log:=TS.Strings[0]; pas:=TS.Strings[1]; serv:=TS.Strings[2]; FreeAndNil(TS); FreeAndNil(TextFile); end; Последний раз редактировалось Admin, Сегодня в 10:32. |
#14
|
|||
|
|||
![]() вот еще одно из множества решений
Но здесь нет защиты от двойного пробела! Если это критично- пиши. добавлю а вообще- то совсем недавно уже была переписка по этому вопросу. Поройся в форуме. Код:
var ss:array[0..2] of string; procedure SplitStr(s:string;Term:char); var N,i:integer; begin for i:=Low(ss) to High(ss) do ss[i]:=''; N:=Low(ss); i:=1; while (i<= Length(s)) and (N <=High(ss)) do begin if s[i]=Term then inc(N) else ss[N]:=ss[N]+s[i]; inc(i); end; end; |
#15
|
|||
|
|||
![]() Спасибо всем за помощь
|