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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2009, 15:57   #11
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Дык вам надо в edit выводить числа или в StringGrid? Ваш код пригоден для StringGrid'а. Но Stilet правильно сказал:
Цитата:
можно рассчитывать сумму непосредственно при наполнении грида информацией
Код:
procedure TForm1.BitBtn2Click(Sender: TObject);
var
 i, j: integer;
 Chars: TStrings;
 Letter, Number: char;
 str: string;
 sum: integer;
begin
 Chars := TStringList.Create;
 try
  Chars.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Chars.txt');
  Edit2.Clear;
  sum := 0;  //обнуляем
  for i := 1 to Length(Edit1.Text) do
  begin
   Letter := Edit1.Text[i];

   for j := 0 to Chars.Count - 1 do
   begin
    str := Chars[j];
    if Pos(AnsiUpperCase(Letter), str) <> 0 then
    begin
     Number := Copy(str, 1, 1)[1];
     Break;
    end;
   end;
   Edit2.Text := Edit2.Text + Number;
   inc(sum, StrToInt(Number));   //Увеличиваем сумму на Number
  end;
  Label1.Caption := IntToStr(sum);  //Присваиваем метке
 finally
  Chars.Free;
 end;
end;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.

Последний раз редактировалось Neeter; 22.06.2009 в 16:32.
Neeter вне форума Ответить с цитированием
Старый 22.06.2009, 16:11   #12
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Сообщение от Neeter
Дык вам надо в edit выводить числа или в StringGrid?
Всё, останавливаюсь на таком варианте: в StringGrid вводятся буквы и расставляются цифры, а подсчитываемая сумма выводится в Edit. . Я уже поднадоел наверное, но не могли бы сделать окончательный результат, с использованием StringGrid-a и Edit-a? То есть добавить в тот код, который расположен на первой странице этой темы, в котором бы делалась бы работа с буквами и цифрами (что уже сделано там) и считалась сумма, а результат суммы чисел подсчитывался бы до тех пор пока на не получится однозначное число? Не серчайте на меня за на наглость
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 22.06.2009, 16:21   #13
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Вот:
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
 i, j: integer;
 Chars: TStrings;           //Сам файл будет тут
 Letter, Number: char;   //Буква в StringGrid'е и число в файле
 str: string;                 //Текущая строка в файле
 sum: integer;
begin
 Chars := TStringList.Create;   //Создаем список
 try
  Chars.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Chars.txt');   //Загружаем в него файл
  sum := 0;  //обнуляем
  Edit1.Clear;  //Очищаем edit, в котором будет сумма
  for i := 0 to StringGrid1.ColCount - 1 do       //Цикл до кол-ва колонок
  begin
   if StringGrid1.Cells[i, 0] = '' then Break;      //Если в текущей колонке не написана буква, то завершаем цикл

   Letter := StringGrid1.Cells[i, 0][1];           //Присваиваем букву из текущей колонки

   for j := 0 to Chars.Count - 1 do               //Цикл до конца файла
   begin
    str := Chars[j];               //Присваиваем текущую строку
    if Pos(AnsiUpperCase(Letter), str) <> 0 then    //Найдена ли буква (измененная в регистре на заглавную) в текущей строке
    begin
     Number := Copy(str, 1, 1)[1];      //Если найдена, то присваиваем переменной число в текущей строке
     inc(sum, StrToInt(Number));   //Увеличиваем сумму на Number
     Break;                                     //Заканчиваем цикл
    end;
   end;
   StringGrid1.Cells[i, 1] := Number;   //Присваиваем ячейке пониже буквы число из файла
  end;
  Edit1.Text := IntToStr(sum);  //Присваиваем edit'у сумму
 finally
  Chars.Free;     //Освобождаем память от списка
 end;
end;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.

Последний раз редактировалось Neeter; 22.06.2009 в 16:31.
Neeter вне форума Ответить с цитированием
Старый 22.06.2009, 16:29   #14
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Код:
...
     Number := Copy(str, 1, 1)[1];      //Если найдена, то присваиваем переменной число в текущей строке
     inc(sum, Number);   //Увеличиваем сумму на Number
     Break;                                     //Заканчиваем цикл
...
Ругается на строчку inc(sum, Number); . Почему?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось mihali4; 09.12.2009 в 20:18.
artemavd вне форума Ответить с цитированием
Старый 22.06.2009, 16:31   #15
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

дада
замените:
Код:
 inc(sum, StrToInt(Number));
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Neeter вне форума Ответить с цитированием
Старый 22.06.2009, 16:53   #16
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Большое спасибо . Щас все считает .
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
c++ считывание с файла. tsergey Помощь студентам 20 24.04.2010 23:30
Считывание с файла (assembler) Prizrak58 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 30.01.2008 18:40
Считывание из файла DimkinStd Общие вопросы Delphi 7 24.01.2007 19:18
Считывание данных из файла PAVEL315 Общие вопросы Delphi 26 17.12.2006 00:53