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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2011, 22:54   #1
salmon172
 
Регистрация: 25.05.2011
Сообщений: 7
По умолчанию Delphi считать слова из файла в стрингрид и число повторений

Сделал прогу, но не могу понять толком в чем ошибка, при запуске прога виснет, помогите разобраться, пожалуйста,
Код:
procedure TForm1.Button2Click(Sender: TObject);

var   i,j,k,n:integer;
      s,s2,leks:string;
      razd,ch:set of char;
        words:TEXTfile;

begin
razd:=['.' , ';' , ',' , ':' , '=' , '(' , ')' , '+' , '-' , '*' , '/' , '^' , '=' , '<', '>', ' '];

stringgrid2.cells[0,0]:='Слова';
  stringgrid2.cells[1,0]:='повторения';
  stringgrid2.rowcount:=2;
  Memo1.Lines.LoadFromFile('123.txt');
  AssignFile(words,'слова.txt');
  Reset(words);
  while not Eof(words) do
  begin
     Readln(words, leks);
      stringgrid2.Cells[0,StringGrid2.RowCount-1]:=UpperCase(leks); //  ñèìâîëû 
    stringgrid2.Cells[1,StringGrid2.RowCount-1]:='0';
    StringGrid2.RowCount:=StringGrid2.RowCount+1;
  end;
  CloseFile(words);
     for i:=0 to Memo1.lines.Count-1 do
       begin
         j:=1;
         s:=Memo1.Lines[j];
          while j<=length(s) do  begin
           if  not (s[j] in razd) then s2:=s2+s[j];
           if (s[j] in razd) or (j=length(s)) then

              begin
              for  n:=1 to  (StringGrid2.RowCount+1)   do begin
                if UpperCase(leks)=stringgrid2.Cells[1,n] then
                  stringgrid2.Cells[1,n]:=inttostr(strtoint(stringgrid2.Cells[1,n])+1);
                     end;
                     end;
                delete(leks,1,j);
                end; end;
             inc(j);
             end;

    //StringGrid2.RowCount:=StringGrid2.RowCount-1;

end.
salmon172 вне форума Ответить с цитированием
Старый 15.12.2011, 00:21   #2
Ghost of Night
Форумчанин
 
Аватар для Ghost of Night
 
Регистрация: 08.08.2010
Сообщений: 371
По умолчанию

В режиме отладки не пробовали посмотреть на какой строке и с какими данными прога зависает?
Хакинг - не преступление, а способ выживания.
Ghost of Night вне форума Ответить с цитированием
Старый 19.12.2011, 00:31   #3
salmon172
 
Регистрация: 25.05.2011
Сообщений: 7
По умолчанию

да, пробовал, ничего не выходит(((
salmon172 вне форума Ответить с цитированием
Старый 19.12.2011, 11:05   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

абсолютно не знаю, что должна делать Ваша программа.
но ошибка у Вас вот здесь:
Цитата:
Код:
                delete(leks,1,j);
что это Вы из переменной leks удаляете, если а) вы туда ничего не писали b) это никак на цикл не влияет. вот while j<=length(s) do begin и крутится бесконечно..


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

Последний раз редактировалось Serge_Bliznykov; 19.12.2011 в 11:10.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти все слова, в которых заданный символ встречается не менее чем заданное число раз. Delphi. Виктория7777 Помощь студентам 6 21.12.2010 18:46
Как считать int-овское число из файла в переменную? (Си) farewe11 Помощь студентам 5 31.05.2010 19:46
Как считать определенное количество букв из слова Poltev86 Общие вопросы Delphi 2 22.05.2010 17:47
Delphi. random, случайные числа без повторений MerCY Помощь студентам 8 10.05.2010 15:19
Найти и вывести все слова,у котоpых число гласных букв пpевышает число согласных. Briz Помощь студентам 2 11.05.2008 00:56