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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2008, 00:38   #1
Decibel
 
Регистрация: 17.06.2008
Сообщений: 8
Печаль Поиск и чтение...

Здравствуйте! У меня к вам вопрос. Значит задача такая: есть текстовый файл, запись в нем допустим такого вида
aaaaaaa:4udsrg74
ccccj77r:jgygjjjgjj
gy456gyjgyj:fhghfgh
..........ну и в том же духе
Нужно организовать поиск строки ДО двоеточия, и при таковой найденной, прочитать то что после двоеточия. Вот в общем какое дело..
Decibel вне форума Ответить с цитированием
Старый 17.06.2008, 01:38   #2
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Код:
str:='asd'; //строка которую надо найти
AssignFile(Fail,'адрес файла');
Reset(fail);
While not eof(fail) do
begin
  Readln(Fail,s); //читаем строку
  for i:=1 to length(s) do
    if s(i)<>':' then doDvoetoch:=s(i)  
    else break;  //если до шли до ':' останавливаем цикл
  if str=doDvoetoch then 
   for j:=i to length(s) do
    PosleDvoet:=s(j); //вот твоя строка можешь на прямую выводить   
    //твоё дело
   //Я сделал всё так как ты описал, на счёт повторной строки, ты не чего
  // не уточнял, так что думай сам. Можешь при первой найденой  
  // закончить читать файл, а можешь их несколько вывести твоё дело))
end;
dr.Chas вне форума Ответить с цитированием
Старый 17.06.2008, 07:46   #3
Decibel
 
Регистрация: 17.06.2008
Сообщений: 8
По умолчанию

Цитата:
Сообщение от dr.Chas Посмотреть сообщение
Код:
str:='asd'; //строка которую надо найти
AssignFile(Fail,'адрес файла');
Reset(fail);
While not eof(fail) do
begin
  Readln(Fail,s); //читаем строку
  for i:=1 to length(s) do
    if s(i)<>':' then doDvoetoch:=s(i)  
    else break;  //если до шли до ':' останавливаем цикл
  if str=doDvoetoch then 
   for j:=i to length(s) do
    PosleDvoet:=s(j); //вот твоя строка можешь на прямую выводить   
    //твоё дело
   //Я сделал всё так как ты описал, на счёт повторной строки, ты не чего
  // не уточнял, так что думай сам. Можешь при первой найденой  
  // закончить читать файл, а можешь их несколько вывести твоё дело))
end;
Спасибо! Все отлично, в принципе как мне и надо! Как буду за своей машиной опробую алгоритм))
Decibel вне форума Ответить с цитированием
Старый 17.06.2008, 12:17   #4
Decibel
 
Регистрация: 17.06.2008
Сообщений: 8
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
fl:textfile;
str,s,doDvoetoch,PosleDvoet:String;
i,j:Integer;
begin
str:='asd';
AssignFile(fl,'C:\file.txt');
Reset(fl);
While not eof(fl) do
begin
Readln(fl,s);
for i:=1 to length(s) do
if s(i)<>':' then doDvoetoch:=s(i) // ругается Missing operator or semicolon
else break;
if str=doDvoetoch then
for j:=i to length(s) do
PosleDvoet:=s(j); //на эту тоже самое
end;
 end;
end.
Простите начинающего что я сделал не так?
Decibel вне форума Ответить с цитированием
Старый 17.06.2008, 12:33   #5
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

Вот ))) попытался исправить
З.Ы. я условия не понял)) ща исправил
Код:
procedure TForm1.Button1Click(Sender: TObject);
 var
fl:textfile;
str,s,doDvoetoch,PosleDvoet:String;
i,j:Integer;
begin
str:='asd';
AssignFile(fl,'file.txt');
Reset(fl);
While not eof(fl) do
begin
 readln(fl,s);
 if pos(':',s)<>0 then
begin
   form1.Label1.Caption:=copy(s,pos(':')+1,length(s));
   exit;
end;
end;

end;
^_^

Последний раз редактировалось WOLFak; 17.06.2008 в 13:20.
WOLFak вне форума Ответить с цитированием
Старый 17.06.2008, 12:56   #6
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Прошу прощения ошибся ну с кем не бывает
Код:
if s[i]<>':' then doDvoetoch:=s[i] // ругается Missing operator or semicolon
Код:
PosleDvoet:=s[j]; //на эту тоже самое
dr.Chas вне форума Ответить с цитированием
Старый 17.06.2008, 13:12   #7
Decibel
 
Регистрация: 17.06.2008
Сообщений: 8
По умолчанию

Вот сейчас работает
но,беру 2 строки в файле:
asd:111111111
dsa:222222222

при поиске строки asd, как никрути выводит последнюю строку (причем не после двоеточия, а полностью)
Decibel вне форума Ответить с цитированием
Старый 17.06.2008, 13:14   #8
Decibel
 
Регистрация: 17.06.2008
Сообщений: 8
По умолчанию

Цитата:
Сообщение от dr.Chas Посмотреть сообщение
Прошу прощения ошибся ну с кем не бывает
Код:
if s[i]<>':' then doDvoetoch:=s[i] // ругается Missing operator or semicolon
Код:
PosleDvoet:=s[j]; //на эту тоже самое
а точно, массив)))
всем спасибо за ответы
Decibel вне форума Ответить с цитированием
Старый 17.06.2008, 14:07   #9
Decibel
 
Регистрация: 17.06.2008
Сообщений: 8
По умолчанию _

К сожалению, код находит последний символ,последней строки, перед двоеточием, и выводит его...(( надо бы как - поиск во всем файле например :
пусть строка неизвестно где будет находится в файле, надо найти слово ada5ab, а потом уже как найдется, перейти к чтению в этой же строке, но уже после двоеточия
ada5ab:1111
т.е. результат 1111
З.Ы. Я наверное запарил уже со своими строками))
Decibel вне форума Ответить с цитированием
Старый 17.06.2008, 19:16   #10
WOLFak
Форумчанин
 
Аватар для WOLFak
 
Регистрация: 30.12.2007
Сообщений: 180
По умолчанию

Цитата:
Сообщение от Decibel Посмотреть сообщение
ada5ab:1111
т.е. результат 1111
З.Ы. Я наверное запарил уже со своими строками))
если нада найти результат 1111 тоесть то что после первого двуеточия то мой код подходит(яя егго исправил)
^_^
WOLFak вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение subsonic Общие вопросы Delphi 1 30.05.2008 08:06
Чтение тексат из *.doc silversab Помощь студентам 0 28.11.2007 17:54
чтение файла Arteom Общие вопросы Delphi 6 27.08.2007 18:15
Чтение из файла Need_Help Паскаль, Turbo Pascal, PascalABC.NET 5 19.05.2007 05:37