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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2012, 20:14   #1
Razdolbai
Новичок
Джуниор
 
Регистрация: 12.11.2012
Сообщений: 20
По умолчанию Поиск слов по первой букве в текстовом файле (Pascal ABC.NET)

Всем доброго вечера. Имею код на PascalABC.NET
Код:
program ardabyev_words_search_113b;
uses
  CRT;
var
  words: array of string;
  aString, temp, userValue, path: string;
  aText: Text;
  wordsCount: integer;
  i: longint;
  flag: char;
begin
  repeat
    flag := #0;
    ClrScr;
    writeln('Type a path to your .txt file (for ex.:, C:\books\text.txt):');
    readln(path);
    Assign(aText, path);
    Reset(aText);
    wordsCount := 0;
    while flag <> #13 do
    begin
      writeln('Enter a letter or word, the first letter of which to be carried out search:');
      readln(userValue);
      writeln('Press Enter to confirm a valid entrance or any another key to fix the entered values');
      flag := ReadKey;
    end;
    writeln();
    while not Eof(aText) do
    begin
      readln(aText, aString);
      for i := 1 to length(aString) do
        if (aString[i] <> ' ') and (i <> length(aString)) then
          temp := temp + aString[i]
        else
          if temp[1] = LowerCase(userValue[1]) then
          begin
            if i = length(aString) then
              temp := temp + aString[i];
            Inc(wordsCount);
            SetLength(words, wordsCount);
            words[wordsCount - 1] := temp;
            temp := '';
          end
          else
            temp := '';
    end;
    if wordsCount = 0 then
      writeln('There are no words that start with your letter in the text')
    else
      writeln('Found words for the letter ', userValue[1], ':');
    Close(aText);
    for i := 0 to wordsCount - 1 do
      writeln(i + 1, ': ', words[i]);
    words := nil;
    writeln('Press any key to restart or Esc to exit');
    flag := ReadKey;
  until flag = #27;
end.

Программа ищет слова из .txt файла по первой букве.
Проблема в том, что, если в текстовом файле есть знаки препинания, то компилятор выдает слова вместе с ними. Как доработать код, чтобы выводились только слова?

Последний раз редактировалось Stilet; 12.11.2012 в 20:56.
Razdolbai вне форума Ответить с цитированием
Старый 12.11.2012, 20:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
        
if (aString[i] <> ' ') and (i <> length(aString)) then begin
  if aString[i] in ['A'..'z','А'..'я'] then          temp := temp + aString[i]
end else ...
В следующий раз темы твои буду удалять нещадно. если будешь правила форума нарушать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.11.2012, 21:04   #3
Razdolbai
Новичок
Джуниор
 
Регистрация: 12.11.2012
Сообщений: 20
По умолчанию

извините,но в чем неправильность,поясните,а то сами понимаете все правила читать и времени нет и желания)
Razdolbai вне форума Ответить с цитированием
Старый 12.11.2012, 21:16   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

времени и желания, говорите, нет...
А у форумчан, значит, разбираться и помогать Вам есть и то, и другое?! ну-ну..

А нарушили Вы пункт правил 2.1.
цитирую:
Цитата:
2.При создание новых тем запрещено:

2.1 Создавать темы с названиями, которые не отражают смысл сообщения, пример - "Help!!!", "Памагите", "тону, спасите!", "а что это вы тут делаете?" и т.д.
Администратор и Модераторы имеют право переименовать закрыть и удалить тему, при этом могут поставить штраф - "№1 Флуд".
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.11.2012, 21:24   #5
Razdolbai
Новичок
Джуниор
 
Регистрация: 12.11.2012
Сообщений: 20
По умолчанию

понял,больше такого не повторится,извиняюсь за косяк
Razdolbai вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск фамилии по первой букве evklid Помощь студентам 7 01.06.2012 19:57
поиск в базе по первой букве chircov090993 БД в Delphi 4 24.05.2012 11:45
Поиск данных в текстовом файле (в самом файле! а не в Memo и не загружая всю инфу из файла в одну строку glagoff Помощь студентам 1 05.05.2010 13:00
Поиск слов в текстовом файле svt Помощь студентам 8 07.11.2009 19:56