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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.08.2010, 13:26   #11
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
интересно, как тогда по вашему такой массив называется???
Код:

mass: array of integer;
Ну хотя бы массив неопределённой длины!!!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 03.08.2010, 13:29   #12
vityanya
Пользователь
 
Регистрация: 03.08.2010
Сообщений: 23
По умолчанию

именно из массива...
вот по этой процедуре:
Код:
procedure Tform1.save;
var cp:file of tcomp;
begin
if savedialog1.Execute then begin
assignfile(cp, savedialog1.filename);
rewrite(cp);
for i:=1 to n do
write(cp,Comp1[i]);
closefile(cp);
end;
end;
не сохраняет вообще его... то есть я к примеру указал тип файла *.тхт он пуст...
vityanya вне форума Ответить с цитированием
Старый 03.08.2010, 13:32   #13
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

пройдите пошагово, возможно у вас Comp1[i] пустой или n = 1
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 03.08.2010, 13:40   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
for i:=1 to n do
А n чему равно? если работешь с динмассивами то привыкни к такому:
Код:
 for i:=low(comp1) to high(comp1)...
Пусть сам вычисляет размер массива.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.08.2010, 14:03   #15
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
если работешь с динмассивами то привыкни к такому
Только для динамических массивов low всегда равно 0.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 03.08.2010, 14:11   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
GunSmoker
Верно, но все-тки я считаю это хорошим стилем.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.08.2010, 14:28   #17
vityanya
Пользователь
 
Регистрация: 03.08.2010
Сообщений: 23
По умолчанию

Вот пример сохранения программы знакомого:

Код:
procedure Tform2.saveclient;
var cl:file of tclient;
begin
if form3.savedialog1.Execute then begin
assignfile(cl,form3.SaveDialog1.filename);
rewrite(cl);
for i:=1 to count do
write(cl,cln[i-1]);
closefile(cl);
end;
end;
у меня практически тоже самое... ед. отличие у него count у меня n

а кого можно будет вечером в аське подоставать с вопросами???)))

Последний раз редактировалось Stilet; 03.08.2010 в 14:46.
vityanya вне форума Ответить с цитированием
Старый 03.08.2010, 14:35   #18
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

А ты ошибку то понял?

Код:
procedure TForm1.Add2;
begin
n:=0;{постоянно пишете в одно и тоже место}
setlength(comp1,n+1);
Comp1[n].user:=Form2.Edit1.Text;
Comp1[n].seans:=Form2.Edit2.Text;
try
Comp1[n].vr:=StrtoFloat(Form2.Edit3.Text);
except
ShowMessage('Введите число');
end;
try
Comp1[n].tar:=StrtoFloat(Form2.Edit4.Text);
except
showMessage('Введите число');
end;
try
Comp1[n].stkons:=StrtoFloat(Form2.Edit5.Text);
except
showMessage('Введите число');
end;
try
Comp1[n].skid:=StrtoFloat(Form2.Edit6.Text);
except
showMessage('Введите число');
end;
end;
И при этом n не увеличиваете! Поэтому и получаете последний элемент он же первый!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303

Последний раз редактировалось Stilet; 03.08.2010 в 14:42.
Hacker19_90 вне форума Ответить с цитированием
Старый 03.08.2010, 14:41   #19
vityanya
Пользователь
 
Регистрация: 03.08.2010
Сообщений: 23
По умолчанию

то есть надо прописать n:=n+1; ???
vityanya вне форума Ответить с цитированием
Старый 03.08.2010, 14:43   #20
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Да! Или просто пишите Inc(n);
При этом в функции добавления n постоянно обнуляется! Сделайте это допустим в FormCreate(); А из функции уберите!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CppWEbBrowser. Запрет на открытие нового окна, и открытие его в том же окне Askar_g Общие вопросы C/C++ 4 25.06.2011 20:00
Файл rundll32.exe - Очень нужна помощь. Nuvi Windows 14 03.12.2009 16:33
Нужна помощь по вставке изображения путем VBA ACCESS в файл EXCEL AlVBA Microsoft Office Access 2 18.05.2009 15:58
Запись в файл в Delphi, нужна помощь s-t-r-i-k-e-r Помощь студентам 5 03.06.2008 19:11
Нужна помощь(Разработать алгоритм, нарисовать его блок-схему.) miron Помощь студентам 4 26.02.2008 12:08