|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
"два слова из файла"
Всем привет. у меня такая проблема, нужно занести значение из файла в переменную. Не могу сообразить как сделать поиск и копирование в переменную.
например фаил содержит такие данные: пол: м. вес: 150 кг. рост: 189 см. цвет волос: каштан. возраст: 30 лет. нужно чтоб в переменой оказалось значение "каштан" значение не стоит в начале или конце файла до идет спец символ ":" после "." Помогите, пожалуйста. |
#2
|
||||
|
||||
можно просто парсить текст:
Код:
function NodeColor(Text:string; const SearchText:string; var OutText:string):Boolean; var ColorPos:Integer; begin Result := False; if Length(Text) = 0 then Exit; ColorPos := Pos(LowerCase(SearchText), LowerCase(Text)); if ColorPos <> 0 then begin Delete(Text,1,ColorPos + Length(SearchText) - 1); OutText := Copy(Text, 1, Pos('.',Text) - 1); OutText := Trim(OutText); Result := True; end; end; procedure TForm1.Button1Click(Sender: TObject); var pColor:string; const ColorText = 'цвет волос:'; begin if NodeColor('цвет волос: каштан. возраст: 30 лет.', ColorText, pColor) then ShowMessage(pColor); end; Arrrgh |
#3
|
||||
|
||||
Функция очень помогла, спс. Но там текст берется их файла, при этом используеться тип TMemoryStream, щас попробую переделать, обязательно отпишусь.
Последний раз редактировалось hunt, 15.07.2010 в 08:05. |
#4
|
||||
|
||||
не работает, не могу понять почему, что не так, подскажите...
Код:
function NodeColor(Text:string; const SearchText:string; var OutText:string):Boolean; var ColorPos:Integer; begin Result := False; if Length(Text) = 0 then Exit; ColorPos := Pos(LowerCase(SearchText), LowerCase(Text)); if ColorPos <> 0 then begin Delete(Text,1,ColorPos + Length(SearchText) - 1); OutText := Copy(Text, 1, Pos('.',Text) - 1); OutText := Trim(OutText); Result := True; end; end; procedure TForm1.Button2Click(Sender: TObject); var pColor:string; F: TextFile; S: string; const cstop:string='волос:'; //текст, после которой идет капча begin AssignFile(F, 'text.txt'); Reset(F); while not Eof(F) do begin Readln(F, S); if NodeColor(s, cstop, pColor) then ShowMessage(pColor); end; CloseFile(F); end; Последний раз редактировалось Admin, 15.07.2010 в 11:45. |
#5
|
||||
|
||||
все работает, urahara спс!
Последний раз редактировалось hunt, 15.07.2010 в 11:17. |