![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем доброго времени суток. Сижу пишу программку. Для удобства работы с большими объемами данных задумал хранить все в Экселе. Сохранить получилось, с горем пополам, а вот с загрузкой данных какие-то непонятки. Пишет "член группы не найден" Хотя такой же модуль работает в другой программе, отличий не нашел, возможно что заметите, поможете. Заранее спасибо. Программа весит больше 300кб, поэтому разместил на депозите и на народе, если что могу на мыло кинуть.
http://depositfiles.com/files/79xzbucoj http://narod.ru/disk/44406507001.57c...D0%95.zip.html Принцип работы прост - Файл - Загрузить результаты расчета. Файл с данными - 123.xls Заранее спасибо. |
#2
|
||||
|
||||
![]() Больше 1Мб, это конечно почти 300Кб. Ещё бы кто научил архивы создавать, чтобы не пихать туда весь хлам из каталога. Нужной информации набралось всего на 200Кб архива.
Нет, господин хороший, рыться в файлах, где все переменные безымянные и сам код представляет кучу мусора (не отформатирован) желания нет. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 26.03.2012 в 01:26. |
Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
sidoro89 (26.03.2012)
|
#3
|
|||
|
|||
![]() С хламом и сформированным архивом полностью согласен, копия не к месту забралась туда. (спасибо, на будующее учтено).
Рыться в файлах не стоит файл там один - MKE.dpr, Unit1.pas, строка 1944 Код:
procedure TMain.N9Click(Sender: TObject); Выкладываю процедуру, которая за все отвечает. На первом вводе данных все останавливается. Код:
... var Excel: Variant; ... procedure TMain.N9Click(Sender: TObject); var address:string; begin dlgOpen1.Title := 'Загрузить результаты расчета'; dlgOpen1.InitialDir := GetCurrentDir; dlgOpen1.Filter := 'XLS file|*.xls'; dlgOpen1.DefaultExt := 'xls'; dlgOpen1.FilterIndex := 1; if dlgOpen1.Execute then begin address:=dlgOpen1.FileName; Excel := CreateOleObject('Excel.Application'); Excel.Workbooks.Open[address]; //Импорт данных N_U:=Round(Excel.cells(2,20)); N_ELEMENT:=Round(Excel.cells(2,21)); for i:=1 to N_U do begin S_UZL[i].X:=StrToFloat(Excel.cells(1+i,2)); S_UZL[i].y:=StrToFloat(Excel.cells(1+i,3)); S_UZL[i].u:=StrToFloat(Excel.cells(1+i,4)); S_UZL[i].V:=StrToFloat(Excel.cells(1+i,5)); S_UZL[i].Sx:=StrToFloat(Excel.cells(1+i,6)); S_UZL[i].Sy:=StrToFloat(Excel.cells(1+i,7)); S_UZL[i].Sxy:=StrToFloat(Excel.cells(1+i,8)); S_UZL[i].S1:=StrToFloat(Excel.cells(1+i,9)); S_UZL[i].S2:=StrToFloat(Excel.cells(1+i,10)); S_UZL[i].k:=StrToFloat(Excel.cells(1+i,11)); end; for i:=1 to N_ELEMENT do begin S_ELEM[i].Sx:=StrToFloat(Excel.cells(1+i,13)); S_ELEM[i].Sy:=StrToFloat(Excel.cells(1+i,14)); S_ELEM[i].Sxy:=StrToFloat(Excel.cells(1+i,15)); S_ELEM[i].S1:=StrToFloat(Excel.cells(1+i,16)); S_ELEM[i].S2:=StrToFloat(Excel.cells(1+i,17)); S_ELEM[i].k:=StrToFloat(Excel.cells(1+i,18)); S_ELEM[i].S:=StrToFloat(Excel.cells(1+i,19)); end; Excel.Application.Quit; end; end; Проблема решена, самому не ловко. Тему можно закрывать. Ячейки задавались круглыми скобками. С квадратными все начало работать. Всем спасибо. Одного понять не могу: сохраняются данные в эксель обращась к ячейкам через круглые скобки и проблем нет, а при вводе данных появляются трудности. Последний раз редактировалось sidoro89, 26.03.2012 в 11:41. Причина: Обнаружена неточность в ответе. |