Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2007, 13:12   #1
lin
Пользователь
 
Регистрация: 08.04.2007
Сообщений: 10
По умолчанию Поиск в файле

есть у кого-нибуть код. которий би искал в тхт файле слово, когда он его найдет то б читал дальше строку и после символа "/" присваивал её переменной.

файл имеет такую структуру:

6125 /2
3698 /2
3695 /8
5469 /7
5469 /9

тоисть если поиск нашел 3695 то читает дальше и присвавивает переменной (напиример р) значение 8 (р:=8)

кто может помочь?
lin вне форума Ответить с цитированием
Старый 24.05.2007, 05:39   #2
Shurik Hacker
Проги на заказ
Пользователь
 
Аватар для Shurik Hacker
 
Регистрация: 22.05.2007
Сообщений: 41
По умолчанию

Function After ( Src:string ; Var S:string ) : string ;
Var
F : Word ;
begin
F := POS (Src,S) ;
if F=0 then
After := ''
else
After := COPY(S,F+length(src),length(s)) ;
end ;


function Find(const S, P: string): Integer;
var
i, j: Integer;
begin
Result := 0;
if Length(P) > Length(S) then
Exit;
for i := 1 to Length(S) - Length(P) + 1 do
for j := 1 to Length(P) do
if P[j] <> S[i + j - 1] then
Break
else if j = Length(P) then
begin
Result := i;
Exit;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
x: integer;
p: integer;
s:string;
begin
for x:=0 to Memo1.Lines.Count-1 do
if Find(Memo1.Lines[x],'3695') <> 0 then
begin
s:=Memo1.Lines[x];
p:=StrToInt(After('/',s));
end;
end;
Делфист - это звучит гордо!
Shurik Hacker вне форума Ответить с цитированием
Старый 25.05.2007, 00:37   #3
lin
Пользователь
 
Регистрация: 08.04.2007
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Shurik Hacker Посмотреть сообщение
Function After ( Src:string ; Var S:string ) : string ;
Var
F : Word ;
begin
F := POS (Src,S) ;
if F=0 then
After := ''
else
After := COPY(S,F+length(src),length(s)) ;
end ;


function Find(const S, P: string): Integer;
var
i, j: Integer;
begin
Result := 0;
if Length(P) > Length(S) then
Exit;
for i := 1 to Length(S) - Length(P) + 1 do
for j := 1 to Length(P) do
if P[j] <> S[i + j - 1] then
Break
else if j = Length(P) then
begin
Result := i;
Exit;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
x: integer;
p: integer;
s:string;
begin
for x:=0 to Memo1.Lines.Count-1 do
if Find(Memo1.Lines[x],'3695') <> 0 then
begin
s:=Memo1.Lines[x];
p:=StrToInt(After('/',s));
end;
end;
А как указать с каким файлом надо работать?
lin вне форума Ответить с цитированием
Старый 25.05.2007, 08:40   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от lin Посмотреть сообщение
А как указать с каким файлом надо работать?
напиши перед поиском загрузку содержимого файла в мемо: memo1.LoadFromFile('Имя файла');
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в файле Zandrey Microsoft Office Excel 8 05.09.2008 12:23
поиск в файле Elm0 Паскаль, Turbo Pascal, PascalABC.NET 14 07.06.2008 22:41
Поиск нулей в файле.Хелп CESHNIK Общие вопросы C/C++ 1 22.02.2008 14:50
Поиск в файле asale Microsoft Office Excel 1 15.05.2007 23:33