Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
tane
2 / 2 / 5
Регистрация: 18.05.2012
Сообщений: 150
#1

Программа Рейтинг стран за результатами олимпийских соревнований и ошибка: ''Is Not A Valid Integer Value" - Delphi

07.02.2014, 14:10. Просмотров 487. Ответов 5
Метки нет (Все метки)

Здравствуйте)программа Рейтинг стран за результатами олимпийских соревнований
Ввожу данные в таблицу,выдает ошибка: '' Is Not A Valid Integer Value.
Помогите разобраться.
(Кнопка Підсумок > Итог)

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, jpeg, ExtCtrls, StdCtrls, Grids;
 
type
  TForm1 = class(TForm)
    tabl: TStringGrid;
    Button1: TButton;
    Image1: TImage;
    procedure FormActivate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormActivate(Sender: TObject);
begin
tabl.Cells[0,0]:='Країна'; 
tabl.Cells[1,0]:='Золотих' ;
tabl.Cells[2,0]:='Срібних'; 
tabl.Cells[3,0]:='Бронзових';
tabl.Cells[4,0]:='Всього медалей';
tabl.Cells[5,0]:='Балів';
tabl.Cells[0,1]:='Україна';
tabl.Cells[0,2]:='Білорусія';
tabl.Cells[0,3]:='Англія';
tabl.Cells[0,4]:='Германія';
tabl.Cells[0,5]:='Італія';
tabl.Cells[0,6]:='Китай' ;
tabl.Cells[0,7]:='Корея';
tabl.Cells[0,8]:='Куба';
tabl.Cells[0,9]:='Нідерланди';
tabl.Cells[0,10]:= 'Россія' ;
tabl.Cells[0,11]:='США';
tabl.Cells[0,12]:='Франція';
tabl.Cells[0,13]:='Японія';
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var 
c,r:integer; {номер столбика и номер строки таблицы}
s:integer; // всtго медалей у команды
p:integer; // балов у команды
m: integer; // номер ряда з максимальним к-ом балов 
buf:array[0..5] of string; // буфер для обмена рядков 
i:integer; // номер рядка - испол у сортировки
begin
for r:=1 to tabl.rowcount do // проработать все строки
begin
s:=0 ; //общее количество медалей?
for c:=1 to 3 do
if tabl.cells[c,r] <>' 'then s:=s+StrToInt(tabl.cells[c,r])
else tabl.cells[c,r]:= '0' ; // общее количество балов
p:=7*StrToInt(tabl.cells[1,r])+6*StrToInt(tabl.cells[2,r])+5*StrToInt(tabl.cells[3,r]); // выводим результат
 
tabl.cells[4,r]:=IntToStr(s); // всьего медалей
tabl.cells[5,r]:=IntToStr(p); // всьего балов
end; {упорядочивание таблицы за спадением - по 5-у столбику упорядочить методом выбора}
    for r:=1 to tabl.rowcount-1 do
begin
m:=r; // найбольший елемент - в r-му рядку
for i:=r to tabl.rowcount-1 do
if StrToInt(tabl.cells[5,i])>StrToInt(tabl.cells[5,m]) then m:=i;
if r <> m then
begin
for c:=0 to 5 do
begin
buf[c]:=tabl.Cells[c,r]; tabl.Cells[c,r]:=tabl.Cells[c,m]; tabl.Cells[c,m]:=buf[c];
end; end; end; end;
 
   
end.
0
Миниатюры
Программа Рейтинг стран за результатами олимпийских соревнований и ошибка: ''Is Not A Valid Integer Value"   Программа Рейтинг стран за результатами олимпийских соревнований и ошибка: ''Is Not A Valid Integer Value"  
Вложения
Тип файла: rar 16(рейтинг).rar (27.1 Кб, 8 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2014, 14:10
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Программа Рейтинг стран за результатами олимпийских соревнований и ошибка: ''Is Not A Valid Integer Value" (Delphi):

Ошибка: " is not valid integer value
Добрый день) Подскажите пожалуйста, из-за чего в этом коде возникает такая...

Ошибка " is not a valid integer value
Здравствуйте. Помогите найти ошибку. При нажатие на Button2 выдает &quot; is not a...

Ошибка raised exception class EConvertError "is not valid integer value"
при попытке сменить кол-во столбцов в Stringgrid и переходе на него вылазит...

Ошибка: raised exception class econverterror with message "is not valid integer value"
Ребята помогите ошибка &quot;raised exception class econverterror with message is...

Ошибка "Is not valid integer value "
Is not valid integer value delphi-выдает такую ошибку. что делать? где что...

Ошибка : "" is not a valid integer value
Здравствуйте! У меня ест код:procedure TForm3.Button2Click(Sender: TObject);...

5
Алекcей
343 / 338 / 133
Регистрация: 11.12.2013
Сообщений: 1,832
07.02.2014, 15:01 #2
замените StrToInt на TryStrToInt и ошибки не будет.
1
northener
пофигист широкого профиля
3252 / 2304 / 628
Регистрация: 15.07.2013
Сообщений: 13,597
07.02.2014, 15:42 #3
Цитата Сообщение от Алекcей Посмотреть сообщение
замените StrToInt на TryStrToInt и ошибки не будет.
Ага. Будут просто неверные результаты.

Цитата Сообщение от tane Посмотреть сообщение
if tabl.cells[c,r] <>' 'then s:=s+StrToInt(tabl.cells[c,r])
' ' - это строка из одного символа пробела. Пустая строка это ''
1
Алекcей
343 / 338 / 133
Регистрация: 11.12.2013
Сообщений: 1,832
07.02.2014, 15:51 #4
Цитата Сообщение от northener Посмотреть сообщение
Ага. Будут просто неверные результаты.


' ' - это строка из одного символа пробела. Пустая строка это ''
а что при Trim сумма изменится?

Добавлено через 5 минут
я предлагал сделать так:
Delphi
1
2
3
4
if TryStrToInt(tabl.cells[c,r],k) then
 s:=s+k
else
 tabl.cells[c,r]:= '0' ; // общее количество балов
1
northener
пофигист широкого профиля
3252 / 2304 / 628
Регистрация: 15.07.2013
Сообщений: 13,597
07.02.2014, 16:13 #5
Цитата Сообщение от Алекcей Посмотреть сообщение
а что при Trim сумма изменится?
При чем тут Trim?
У автора в коде проверяется не то пустая ячейка или непустая, а записан ли в ячейку один и только один пробел или не записан. Поэтому пустые ячейки проходят проверку и попадают в StrToInt(tabl.cells[c,r])
1
tane
2 / 2 / 5
Регистрация: 18.05.2012
Сообщений: 150
08.02.2014, 23:39  [ТС] #6
for r:=1 to tabl.rowcount do // проработать все строки
Добавляем rowcount-1 do // проработать все строки
и все работает.
Спасибо всем за отклик!
0
08.02.2014, 23:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2014, 23:39
Привет! Вот еще темы с решениями:

Ошибка: "" - not valid integer value
проблема такая: из потока вызывается процедура в главной форме &quot;updatetimeinfo&quot;...

Ошибка "Is not a valid integer value"
пытаюсь вывести массивы данные из которых берутся из стринг-гридов . кто...

Ошибка "is not a valid integer value".
Делаю конвертер валют и при нажатии на кнопку &quot;Посчитать&quot; появляется ошибка...

Ошибка "is not valid integer value"
При нажатии на BitBtn4 вылетает с ошибкой unit Unit2; interface uses ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru