Форум: "Прочее";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Внизстранное поведение StringGrid Найти похожие ветки
← →
DeadLord © (2007-10-08 21:58) [0]получаю данные для массива:
begin
for i:=1to xx do
for j:=1to yy do
w[i,j]:=strtofloat(form2.stringgrid1.Cells[i,j]);
end;
Если запускать по Ф9, то все идет гладко, но большая часть массива заполняется нолями, хотя стринг грид не нулевая вообще. Если попробовать выполнить по шагам, то выпадает access violation и окошко отладчика... в чем дело?!
← →
й1 (2007-10-08 22:05) [1]
> strtofloat
← →
DeadLord © (2007-10-08 22:08) [2]
> > strtofloat
не понял...
← →
DeadLord © (2007-10-08 22:09) [3]а, да. стринг грид содержит дробные числа, массив w типа риал
← →
Prohodil Mimo © (2007-10-08 22:14) [4]а остальные переменные каких типов?
← →
DeadLord © (2007-10-08 22:16) [5]
> а остальные переменные каких типов?
которые? i,j,xx,yy- byte.
← →
Вася Правильный (2007-10-08 22:20) [6]
> i,j,xx,yy- byte.
экономишь?
> стринг грид содержит дробные числа
а десятичныйразделитель учтен?
← →
Prohodil Mimo © (2007-10-08 22:20) [7]DeadLord © (08.10.07 22:16) [5]
i,j,xx,yy- byte.
так и думал.
а колонок и строк в гриде наверное больше чем 255?
← →
Anatoly Podgoretsky © (2007-10-08 22:20) [8]Во первых заменить на Integer, а во вторых разобраться с индексами, где строки и столбцы у массивов и у StringGrid и в третьих если приводишь код, то приводи полностью, а не огрызки.
← →
DeadLord © (2007-10-08 22:22) [9]
> > i,j,xx,yy- byte.
>экономишь?
а почему бы и нет?
>> стринг грид содержит дробные числа
>а десятичныйразделитель учтен?
в смысле? запятая стоит. несколько числе нормально распознались, а остальные ячейки нолями забиты:(
← →
DeadLord © (2007-10-08 22:22) [10]
> так и думал.а колонок и строк в гриде наверное больше чем
> 255?
12х12
← →
Prohodil Mimo © (2007-10-08 22:24) [11]DeadLord © (08.10.07 22:22) [10]
тогда делай
> в третьих
из [8]
← →
Вася Правильный (2007-10-08 22:25) [12]
> >экономишь?а почему бы и нет?
это самообман
никакой экономии не происходит, все равно хранится как Integer, обрабатывается только медленнее и неуловимых проблем больше
> в смысле? запятая стоит
а в системе? а DecimalSeparator?
← →
DeadLord © (2007-10-08 22:26) [13]
> Во первых заменить на Integer, а во вторых разобраться с
> индексами, где строки и столбцы у массивов и у StringGrid
> и в третьих если приводишь код, то приводи полностью, а
> не огрызки.
изменил на интеджер- не помогло.
вот процедура целиком:procedure letsgo;
begin
if perexodim<>true then
begin
for i:=1to xx do
for j:=1to yy do
w[i,j]:=strtofloat(form2.stringgrid1.Cells[i,j]);
end;
if nomras=1 then raschet1(w);
if nomras=2 then raschet2(w);
if nomras=3 then raschet3(w);
if nomras=4 then raschet4(w);
if nomras=5 then raschet5(w);
if nomras=6 then raschet6(w);
if nomras=7 then raschet7(w);
if nomras=8 then raschet8(w);
end;
← →
Prohodil Mimo © (2007-10-08 22:29) [14]DeadLord © (08.10.07 22:26) [13]
из таких зверьков шубы делают :о)
← →
Anatoly Podgoretsky © (2007-10-08 22:30) [15]> DeadLord (08.10.2007 22:26:13) [13]
Опять огрызок, неизвестны типы переменных
perexodim, i, xx, j, yy, w[i,j]
и их начальные значения. Кроме того в какой строке возникает ошибка.
← →
DeadLord © (2007-10-08 22:33) [16]
> Опять огрызок, неизвестны типы переменныхperexodim, i, xx,
> j, yy, w[i,j]и их начальные значения. Кроме того в какой
> строке возникает ошибка.
i, xx, j, yy- изменил на интеджер
w[i,j]- TMyArr = array[0..12, 0..15] of double;
начальные значения ноль
ошибка возникает в строкеw[i,j]:=strtofloat(form2.stringgrid1.Cells[i,j]);
← →
Prohodil Mimo © (2007-10-08 22:35) [17]нет процедуры заполнения грида
нет процедур типа raschet1..8
нет той процедуры, при помощи которой ты узнаёшь, что числа потерялись
Вася Правильный (08.10.07 22:25) [12]
а в системе? а DecimalSeparator?
если бы была в этом причина, он бы получал не АВ, а значение ххх не флоат.
← →
Anatoly Podgoretsky © (2007-10-08 22:36) [18]
> начальные значения ноль
>
> ошибка возникает в строке
> w[i,j]:=strtofloat(form2.stringgrid1.Cells[i,j]);
Не может, цикл не выполнится ни одного разу.
← →
DeadLord © (2007-10-08 22:39) [19]
> нет процедуры заполнения грида
>нет процедур типа raschet1..8
> нет той процедуры, при помощи которой ты узнаёшь, что
> числа потерялись
грид заполнен, мне лень каждый рад вбивать 144 значения, как подразумевается по ТЗ
о потеряных значениях узнаю, наведя мышку на переменную массива. Там большая часть значений в начале строки-ноль, последние 2-3 значения- осмысленные
вот описание процедур:procedure raschet1(var d: TMyArr);
procedure raschet2(var d: TMyArr);
procedure raschet3(var c2: TMyArr);
procedure raschet4(var a: TMyArr);
procedure raschet5(var a: TMyArr);
procedure raschet6(var a: TMyArr);
procedure raschet7(var a: TMyArr);
procedure raschet8(var a: TMyArr);
← →
Prohodil Mimo © (2007-10-08 22:40) [20]DeadLord © (08.10.07 22:33) [16]
еслиfor i:=1to xx do
for j:=1to yy do
то почемуarray[0..12, 0..15]
?
так же где xx и yy принимают значения и какие?
← →
DeadLord © (2007-10-08 22:40) [21]
> Не может, цикл не выполнится ни одного разу.
почему? он очень даже выполняется- по шагам прогнал... Значение переменной perexodim- false
← →
DeadLord © (2007-10-08 22:42) [22]
> ак же где xx и yy принимают значения и какие?
блин, забыл: эти два числа у меня константы, равные 12. столбцов 15, так как в последствии есть элементы yy+2 и yy+3
← →
Anatoly Podgoretsky © (2007-10-08 22:43) [23]> DeadLord (08.10.2007 22:40:21) [21]
Цикл for I := 1 to 0 никогда не выполнится, так что лапшу на уши вешаешь.
← →
Anatoly Podgoretsky © (2007-10-08 22:44) [24]> DeadLord (08.10.2007 22:42:22) [22]
Когда будет полный и правильный код?
← →
DeadLord © (2007-10-08 22:44) [25]
> Цикл for I := 1 to 0 никогда не выполнится, так что лапшу
> на уши вешаешь.
извини, мой затык >> [22]
← →
Prohodil Mimo © (2007-10-08 22:45) [26]DeadLord © (08.10.07 22:42) [22]
ты не ответил на первый вопрос.
>если
>for i:=1 to xx do
>for j:=1 to yy do
>то почему
> array[0..12, 0..15]?
← →
DeadLord © (2007-10-08 22:45) [27]
> Когда будет полный и правильный код?
я его выкладывал уже...
http://delphimaster.net/view/15-1190608909/
← →
DeadLord © (2007-10-08 22:47) [28]
> ты не ответил на первый вопрос
оО точно... опять косяк:) но это не влияет... просто я определение типа писал отдельно, сегодня, видимо не о том думал:(
← →
Anatoly Podgoretsky © (2007-10-08 22:49) [29]> DeadLord (08.10.2007 22:45:27) [27]
В указаной ветке кода нет.
← →
Prohodil Mimo © (2007-10-08 22:53) [30]DeadLord © (08.10.07 22:47) [28]
вот и ищи по всей прграмме косяки, да повнимательней.
а для начала проверь что будет:
if perexodim<>true then
begin
for i:=1to xx do
for j:=1to yy do
w[i,j]:=strtofloat(form2.stringgrid1.Cells[i,j]);
for i:=1to xx do
for j:=1to yy do
form2.stringgrid1.Cells[i,j] := FormatFloat("0.00", w[i,j]);
end;
если значения обнулятся, значит что-то не то при чтении, если останутся прежними, ищи косяки в raschet...
хотя не исключено, что значения чутка изменятся в результате конвертаций стринг>>флоат>>стринг
← →
Prohodil Mimo © (2007-10-08 22:54) [31]Anatoly Podgoretsky © (08.10.07 22:49) [29]
В указаной ветке кода нет.
там есть ссылка на код, который сделал ноги.
← →
DeadLord © (2007-10-08 22:54) [32]
> В указаной ветке кода нет.
залил http://slil.ru/24953399
← →
DeadLord © (2007-10-08 22:56) [33]
> если значения обнулятся, значит что-то не то при чтении,
> если останутся прежними, ищи косяки в raschet...хотя не
> исключено, что значения чутка изменятся в результате конвертаций
> стринг>>флоат>>стринг
хм... остались прежними... значит где то косяк, пошел искать:(
← →
Anatoly Podgoretsky © (2007-10-08 22:57) [34]> Prohodil Mimo (08.10.2007 22:54:31) [31]
Еще не хватало бегать по Интернет за кодом.
← →
DeadLord © (2007-10-08 23:01) [35]=))))))))))))))))))))
← →
Prohodil Mimo © (2007-10-08 23:04) [36]Anatoly Podgoretsky © (08.10.07 22:57) [34]
будь я тем кодом, я бы тоже прятался :о)
← →
Anatoly Podgoretsky © (2007-10-08 23:06) [37]> Prohodil Mimo (08.10.2007 23:04:36) [36]
Это как минимум не уважение к форуму, посылать за 20 строчками кода неизвестно куда то в Интернет.
← →
Anatoly Podgoretsky © (2007-10-08 23:07) [38]И вместо него постоянно приводить какие то огрызки.
← →
vasIZmax © (2007-10-08 23:07) [39]))))))))))))))))
плачу и бьюсь об стол
ребят, скачайте))))
Unit2, 483 строка))))))))) а он, далеко пойдет)))))
← →
DeadLord © (2007-10-08 23:07) [40]
> Это как минимум не уважение к форуму, посылать за 20 строчками
> кода неизвестно куда то в Интернет.
их там 452....
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];
Память: 0.57 MB
Время: 0.048 c