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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2008, 13:42   #1
Elm0
ObjectPascal,CISCO
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 294
По умолчанию поиск в файле

Здравствуйте как организовать поиск в файле?
файл из символов(char) , а строка задается юзером и имеет тип стринг.
Elm0 вне форума Ответить с цитированием
Старый 07.06.2008, 13:45   #2
ryton
Пользователь
 
Аватар для ryton
 
Регистрация: 23.05.2008
Сообщений: 97
По умолчанию

А что именно надо найти?Введенную строку или позицию,с которой в файле начинается эта строка?
я не для этого мира и это так
ryton вне форума Ответить с цитированием
Старый 07.06.2008, 13:57   #3
Elm0
ObjectPascal,CISCO
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 294
По умолчанию

ах да, нужно узнать есть ли строка в файле
Elm0 вне форума Ответить с цитированием
Старый 07.06.2008, 14:28   #4
ryton
Пользователь
 
Аватар для ryton
 
Регистрация: 23.05.2008
Сообщений: 97
По умолчанию

function fAnsiPos(const Substr, S: string; FromPos: integer): Integer;
var
P: PChar;
begin
Result := 0;
P := AnsiStrPos(PChar(S) + fromPos - 1, PChar(SubStr));
if P <> nil then
Result := Integer(P) - Integer(PChar(S)) + 1;
end;
я не для этого мира и это так
ryton вне форума Ответить с цитированием
Старый 07.06.2008, 14:29   #5
ryton
Пользователь
 
Аватар для ryton
 
Регистрация: 23.05.2008
Сообщений: 97
По умолчанию

это в Delphi,как переделать под паскаль сообразишь?
я не для этого мира и это так
ryton вне форума Ответить с цитированием
Старый 07.06.2008, 14:37   #6
Elm0
ObjectPascal,CISCO
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 294
По умолчанию

нет, не соображу)
в ПАСКАЛЕ нет типа PChar и функции AnsiStrPos..)
Elm0 вне форума Ответить с цитированием
Старый 07.06.2008, 14:39   #7
ryton
Пользователь
 
Аватар для ryton
 
Регистрация: 23.05.2008
Сообщений: 97
По умолчанию

там есть функция поиска вхождения подстроки в строку используй ее
я не для этого мира и это так
ryton вне форума Ответить с цитированием
Старый 07.06.2008, 15:17   #8
Elm0
ObjectPascal,CISCO
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 294
По умолчанию

ну да - pos...
а вот вопрос
файл типа char я забил в него рандомом отдельных символов.
для того что б найти заданную строку в файле , я себе задачу представил так-
пока не конец файла сувать каждую строку символов в массив и уже оперировать в массиве
если в искомая строка найдена, фиксируем это (inc())
и идем дальше т.е. в тот же массив суем след строку и т.д.

алгоритм верен?
Elm0 вне форума Ответить с цитированием
Старый 07.06.2008, 15:37   #9
ryton
Пользователь
 
Аватар для ryton
 
Регистрация: 23.05.2008
Сообщений: 97
По умолчанию

в принципе да.А зачем ФАйл из символов,возьми просто текстовый.И практичней,и удобней.Берешь любой текстовик и ищешь что надо.Но если надо с символами,то верно
я не для этого мира и это так
ryton вне форума Ответить с цитированием
Старый 07.06.2008, 16:20   #10
Elm0
ObjectPascal,CISCO
Форумчанин
 
Регистрация: 22.05.2007
Сообщений: 294
По умолчанию

спасибо большое за помощь
но вот еще вопрос
Код:
i:=0; {инициализируем счетчики массива
j:=1;            и строки}
repeat
if A[i]=S[j] then   {Гдето сдесь ошибка, если элемент массива 
                          равен элементу строки то копируем его в другой 
                           массив}
begin
     B[i]:=A[i]
     inc(i);
     inc(j);
   end
else
Writeln('Не равны');
until j<length(s)
Если элементы одинаковы я копирую из одного массива в другой, нет- сразу вывод на экран -Не одинаковы!!!.
ну а потом сравниваю массив a и b если они равны - выводим -равны!!!!
Так вот они у меня постоянно не равны. допустим ввожу элементы массива- 12345
и строку 12345. проверил что у нас в массиве b , так там только 1!!а счетчик то увеличивается...понять не могу....
еще проверил, что по ветке else при таком вводе прога не идет, как и должно быть..
Помогите плз разобраться!

Последний раз редактировалось Elm0; 07.06.2008 в 16:29.
Elm0 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в файле Zandrey Microsoft Office Excel 8 05.09.2008 12:23
Поиск нулей в файле.Хелп CESHNIK Общие вопросы C/C++ 1 22.02.2008 14:50
Поиск в файле lin Помощь студентам 3 25.05.2007 08:40
Поиск в файле asale Microsoft Office Excel 1 15.05.2007 23:33