Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.224.214.215] |
|
Сообщ.
#1
,
|
|
|
Очень прошу помощи. Сам не программист. Есть программа лечения зрения детей.
Если нужно, вышлю необходимый код. Необходимо изменить процедуру записи в файл результатов проверки зрения. Есть процедура, в которой: 1. Считывание какой глаз выбран. Три варианта - левый, правый и оба глаза. Выбор производится радиокнопками. Левый - 0. Правый - 1. Оба - 2. 2. Ввод названия файла Excel для сохранения данных. 3. Чтение данных из хранилища данных 4. Запись в Excel файл 5. Открытие Excel и этого файла Получается три отдельных файла. Хотелось бы изменить алгоритм на следующий: 1. Файл сохранения задается один для всех глаз (левый, правый и оба). Файлов два. Имена файлов - eyes.xls и eyes.dat. 2. Формат записи. Файл eyes.xls txt-формат с разделителями Tab. Образецы файлов в присоединенном файле eyes.xls. Файл eyes.prn txt-формат с разделителями Пробел. В этот файл данные записываюся те же, что и в eyes.xls, только без двух первых ячеек (дата и время). 3. Запись данных в одну новую строку для каждого запуска процедуры. Левый, правый, оба. 4. Сохранение файлов без их открытия. Путь сохранения/нахождения - директория инсталляции ../Users. Вот процедура ----------------- procedure TMainSVisionForm.ResultsActionExecute(Sender: TObject); var st : string; TS : Tstrings; Excel : OleVariant; {Row,}Col,i,p : integer; FileName : string; Eye : integer; begin SetWait; LocaleObject.EyeTypeRadio := true; LocaleObject.EyeType := DataHolderObject.CurrentEye; if LocaleObject.ShowEyeType=mrOK then begin Eye := LocaleObject.EyeType; end else exit; FileName := DataHolderObject.GetSaveFileName('*.xls','Excel Worksheet (*.xls)|*.xls'); if length(trim(FileName))<=0 then exit; DeleteFile(FileName); SetWait; st := UserObject.UserHistory[Eye]; try TS := TStringList.Create; TS.Text := st; Excel := CreateOleObject('ExcelWorksheet'); Excel.Activate; Col := 1; for i := 0 to TS.Count-1 do begin st := TS[i]; Col := 1; while true do begin p := pos(Tab,st); if p>0 then begin Excel.ActiveSheet.Cells[i+1,Col] := copy(st,1,p-1); st := copy(st,p+1,length(st)); end else begin Excel.ActiveSheet.Cells[i+1,Col] := st; break; end; inc(Col); end; end; Excel.SaveAs(FileName); finally TS.Destroy; end; Excel := null; if FileExists(FileName) then ShellExecute(0,nil,Pchar(FileName),nil,nil,SW_SHOW); end; --------------------- Прикреплённый файлeyes.rar (1.69 Кбайт, скачиваний: 71) |
Сообщ.
#2
,
|
|
|
Попробуй использовать компоненты Delphi со страницы Servers. Может быть проблем больше не будет.
|
Сообщ.
#3
,
|
|
|
Да я давно посмотрел. Только не программист я, а врач. Вот глаза могу посмотреть.
Как я понимаю, помочь мне сложно... |
Сообщ.
#4
,
|
|
|
DUMAND, не то чтобы сложно тебе помочь, просто хорошо бы было четче сформировать вопросы, если таковые есть. А если нужно, чтобы прогу написали за тебя, то это уже в раздел "Работа".
|
Сообщ.
#5
,
|
|
|
Вы модератор? Тогда перенесите, пожалуйста, тему в нужный раздел.
|
Сообщ.
#6
,
|
|
|
По просьбе трудящихся...
|
Сообщ.
#7
,
|
|
|
M Тема перенесена из Delphi -> Delphi: Общие вопросы. |
Сообщ.
#8
,
|
|
|
Даже за деньги мне не могут помочь?
|
Сообщ.
#9
,
|
|
|
Цитата DUMAND @ Очень прошу помощи. Сам не программист. Есть программа лечения зрения детей. Я сам подслеповатый с рождения . Буду рад помочь детям. Правда, задача поставлена как то туманно. Есть вопросы и непонятки. Если возможно, то свяжись со мной по ICQ, или по EMail. Ну а если сам в Москве, то проще даже по телефону. Номер телефона могу выслать на EMail. |
Сообщ.
#10
,
|
|
|
M Дело благое, здоровье детей, все-таки. Так что тему я прикреплю сверху, может поможет побыстрее разрешить проблему. |
Сообщ.
#11
,
|
|
|
Цитата Chainick @ Дело благое, здоровье детей, все-таки. Так что тему я прикреплю сверху, может поможет побыстрее разрешить проблему. Уже не надо Я с DUMAND напрямую связался, и эта проблема уже решена. |
Сообщ.
#12
,
|
|
|
ок
|