![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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; |
|
#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. |