Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi

Модерирует : ShIvADeSt

ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

   

Z MeZe



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DUMAND

Цитата:
 И такая ерунда получается.

Можно подробнее по поводу ерунды.

Цитата:
 Если данные отсутствуют в начале или середине строки - все корректно
 

Если там ЖЕЛЕЗНО стоит TAB, то так и должно быть.

Цитата:
Если отсутствует ПОСЛЕДНЕЕ значение в строке, то там нет ТАВ (смотрел в UltraEdit) и появляется ошибка (что-то про индекс).

Поправить строку :
if BufStrList.Strings[13] <> '' then bdis:= StrToFloat(BufStrList.Strings[13]) else bdis:= 0
на
if BufStrList.Count > 13 then if BufStrList.Strings[13] <> '' then bdis:= StrToFloat(BufStrList.Strings[13]) else bdis:= 0
При условии, что там железно 13 столбцов (если нет, то соответственно проверка в каждую предыдущую строку с соответствующим индексом).
imonah

Цитата:
типа экстаполяции данных между двумя соседними точками в чарте.

Ну вообще, чисто теоретически, все таки интерполяции.

Цитата:
А про "экстаполяцию данных между двумя соседними точками в чарте" можно подробнее? Я пытался ее там найти, но увы. Где там что выставить надо?

Так вот, если я правильно понимаю, график состоит из дискретных значений. Тот пример, последний, думаю, решает проблему нулевых (пустых) значений.
А какой смысл интерполировать между двумя точками.
Если не хочется иметь угловатый график, то для начала нужно рассчитать сплайн (способов море, все зависит от того, что на выходе), а затем уже его и строить. Т.е. по всем точкам получится некая функция.
А вот строить интерполяционный сплайн между двумя точками бессмысленно.
Короче говоря, если хочется получить некую гладкую кривую, то строить по точкам в лоб неправильно.
Путанно, но, думаю, понятно.

Всего записей: 455 | Зарегистр. 09-02-2004 | Отправлено: 01:45 16-09-2005
DUMAND



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Z MeZe

Цитата:
DUMAND  
 
Поправить строку :  
if BufStrList.Strings[13] <> '' then bdis:= StrToFloat(BufStrList.Strings[13]) else bdis:= 0  
на  
if BufStrList.Count > 13 then if BufStrList.Strings[13] <> '' then bdis:= StrToFloat(BufStrList.Strings[13]) else bdis:= 0  
При условии, что там железно 13 столбцов (если нет, то соответственно проверка в каждую предыдущую строку с соответствующим индексом).  
 

 
Сейчас попробовал. Все работает.  Попробую поиграть с данными. Но почти полностью уверен - работает!!! Спасибо
 
 

Цитата:
 
Цитата:А про "экстаполяцию данных между двумя соседними точками в чарте" можно подробнее? Я пытался ее там найти, но увы. Где там что выставить надо?  
 
Так вот, если я правильно понимаю, график состоит из дискретных значений. Тот пример, последний, думаю, решает проблему нулевых (пустых) значений.  
А какой смысл интерполировать между двумя точками.  
Если не хочется иметь угловатый график, то для начала нужно рассчитать сплайн (способов море, все зависит от того, что на выходе), а затем уже его и строить. Т.е. по всем точкам получится некая функция.  
А вот строить интерполяционный сплайн между двумя точками бессмысленно.  
Короче говоря, если хочется получить некую гладкую кривую, то строить по точкам в лоб неправильно.  
Путанно, но, думаю, понятно.  

 
Абсолютно понятно. Мне как раз нужен несглаженный, угловатый график. Проблема-то была в соединении прямой линией двух соседних точек при условии отсутствия между ними нескольких значений. Но Ваш код полностью решил эту проблему.
 
Еще раз большое спасибо. Если захотите поработать с программой, я к вашим услугам.  
А сейчас буду в удовольствие играть с данными.

Всего записей: 337 | Зарегистр. 12-06-2001 | Отправлено: 11:15 16-09-2005
DUMAND



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Опять прошу помощи. Сделал форму для внесения данных пациента. Обычные ComboBox и Edit. А как сохранить данные в текстовый файл не нашел. Может у кого есть простенький пример кода?

Всего записей: 337 | Зарегистр. 12-06-2001 | Отправлено: 22:42 17-09-2005
imonah



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DUMAND
Откуда и какие данные сохранить? Подробнее, плиз. Проблема не понятна.
Если просто из эдит, то так:

Код:
 
var f:textfile;
 
AssignFile(f, 'pacient.dat');
Rewrite(f);
WriteLn(f, Edit1.text);
CloseFile(f);
 


----------
Не относитесь к жизни слишком серьезно, вам все равно не уйти из нее живым :)

Всего записей: 1376 | Зарегистр. 07-02-2003 | Отправлено: 23:18 17-09-2005 | Исправлено: imonah, 23:19 17-09-2005
DUMAND



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
imonah
 
Фу... Наконец закончил все прописывть и тестировать. Все работает. Вот спасибо Вам!  
И еще два вопроса. В файл все пишется. Только без названия бокса. Например ComboBox называется "Диагноз" и в нем выбор из 4 вариантов. Вариант пишется. А нельзя записать так: Диагноз=Близорукость. И так далее. И еще. Можно ли в такую же форму (новое приложение) возвращать (читать) значения из файла данных. Неудобно просматривать текстовые файлы. А так все будет в привычном виде. Файл-то с одним именем для всех, только в разных папках. Можно добавить кнопку открытия файла и считать его?
 
Добавлено:
И еще вопрос. Хочу сделать автоматическую отправку файла с данными лечения на мой почтовый ящик. Полдня просидел IdSMTP и MAPI. Решил SMTP сервер использовать своего провайдера. MAPI заработал. С IdSMTP еще надо разбираться. Компиляция ОК. Только непересылает. Искал в инете решение. И нашел другую информацию  Провайдеры часто запрещают пользование чужих SMTP-серверов. А пациенты у разных провайдеров. Как лучше поступить, как обычно делают?

Всего записей: 337 | Зарегистр. 12-06-2001 | Отправлено: 00:57 18-09-2005
DUMAND



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
С записью в файл названий боксов разобрался.  
Вывод данных из файла в форму. Пробовал выводить в свойство Text  LabelEdit и Edit значения переменных. Не получилось.  
С почтой приходится думать. MAPI использует мэйл-клиент пользователя. И немалое кол-во юзеров используют удаленные сервисы. mail.ru, yandex.ru.... Получается, надо использовать два алгоритма? Или есть общие решения?

Всего записей: 337 | Зарегистр. 12-06-2001 | Отправлено: 09:30 19-09-2005
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DUMAND
Если вы будете отправлять файлы для себя с согласия пользователя, тогда просто сделайте ShellExecute(Application.Handle,'open','mailto:towho@mysite.com',nil,nil,0)
 
Здесь будет создано письмо в пользовательском почтовом клиенте. Пользователю останется только нажать на "Отправить". Программы которые будут пытаться отправлять данные автоматом нормальные пользователи считают вредоносными, так что лучьше покажите что вы будете отправлять, пользовтаелю спокойнее, и вам хорошо.
 
Кроме того, MAPI менее распространненый протокол чем SMTP.  
 
В основном форуме у вас было пожелание чтобы были кнопки на флеше. Сразу предупреждаю, если мене прийдеться скачать версию с флешем, значит я буду требовать версию без флеша. Т.к. флеш по нормальному не рубиться при просмотре в Internet он у меня не стоит по нормальному. Так что оставьте стандартные компоненты WINDOWS. Среди моих знакомых таких довольно много.  
 

Цитата:
И еще. Можно ли в такую же форму (новое приложение) возвращать (читать) значения из файла данных. Неудобно просматривать текстовые файлы. А так все будет в привычном виде. Файл-то с одним именем для всех, только в разных папках. Можно добавить кнопку открытия файла и считать его?  
 

Конечно можно. здесь операция будет похоже на запись данных в файл. Только будьте внимательны при определении формата выводимых данных (при его изменении нужно будет менять процедуру чтения из файла)  
Как собственная шишка пожелание, пишите версию формата данных в файл данных.
Это поможет понять что не так в данных которые вы пытаетесь прочитать.
 
Вы уже научились считывать данные для графика, так что проблем как получить данные для формы не должно для вас быть очень сильно проблематичным.
 

Цитата:
Например ComboBox называется "Диагноз" и в нем выбор из 4 вариантов. Вариант пишется. А нельзя записать так: Диагноз=Близорукость.  

Что произойдет с форматом выходных данных если интерфейс программы будет переведен на другой язык?
 

Цитата:
Вывод данных из файла в форму. Пробовал выводить в свойство Text  LabelEdit и Edit значения переменных. Не получилось.  

Код в студию. Что пишет компилятор, что выводит программа?
Не обязательно всю простыню, достаточно одного контрола.
 

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 12:56 19-09-2005
imonah



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
DUMAND

Цитата:
Только без названия бокса. Например ComboBox называется "Диагноз" и в нем выбор из 4 вариантов. Вариант пишется. А нельзя записать так: Диагноз=Близорукость.

Можно... Либо на событие FormCreate запоминать в переменные имена комбобоксов и потом их выводить

Код:
 
cbText:=ComboBox1.Text;
 
.....(после изменения в боксе Text будет уже иметь выбранное значение)
 
WriteLn(f,cbText,+'='+ComboBox1.Text);
 

 
Ну или просто писать:  

Код:
 
WriteLn(f, 'Диагноз='+ComboBox1.Text);  
 


----------
Не относитесь к жизни слишком серьезно, вам все равно не уйти из нее живым :)

Всего записей: 1376 | Зарегистр. 07-02-2003 | Отправлено: 16:46 19-09-2005
DUMAND



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vserd

Цитата:
DUMAND  
Если вы будете отправлять файлы для себя с согласия пользователя, тогда просто сделайте ShellExecute(Application.Handle,'open','mailto:towho@mysite.com',nil,nil,0)  
 
Здесь будет создано письмо в пользовательском почтовом клиенте. Пользователю останется только нажать на "Отправить". Программы которые будут пытаться отправлять данные автоматом нормальные пользователи считают вредоносными, так что лучьше покажите что вы будете отправлять, пользовтаелю спокойнее, и вам хорошо.  
 

 
Да, с Shell я делал все успешно. Но мне требуется присоединить архив файлов с заданиями. А это с Shell не сделаешь. А показать текст письма несложно в Help.    
 

Цитата:
 
Кроме того, MAPI менее распространненый протокол чем SMTP.  
 
 
Пытался разобраться с IdSNTP. Правда, запутался.

Цитата:
 
В основном форуме у вас было пожелание чтобы были кнопки на флеше. Сразу предупреждаю, если мене прийдеться скачать версию с флешем, значит я буду требовать версию без флеша. Т.к. флеш по нормальному не рубиться при просмотре в Internet он у меня не стоит по нормальному. Так что оставьте стандартные компоненты WINDOWS. Среди моих знакомых таких довольно много.  
 

Флеш все равно требуется. На нем сделана проверка зрения и основной тренинг Таблицы.  Я во флеше сам это делаю. А плеер включен в дистрибутив.

Цитата:
 
Цитата:И еще. Можно ли в такую же форму (новое приложение) возвращать (читать) значения из файла данных. Неудобно просматривать текстовые файлы. А так все будет в привычном виде. Файл-то с одним именем для всех, только в разных папках. Можно добавить кнопку открытия файла и считать его?  
 
Конечно можно. здесь операция будет похоже на запись данных в файл. Только будьте внимательны при определении формата выводимых данных (при его изменении нужно будет менять процедуру чтения из файла)  
Как собственная шишка пожелание, пишите версию формата данных в файл данных.  
Это поможет понять что не так в данных которые вы пытаетесь прочитать.  
 
Вы уже научились считывать данные для графика, так что проблем как получить данные для формы не должно для вас быть очень сильно проблематичным.  
 
 
Да, с чтением уже проблем нет. А вот вставить значение в Edit не получилось. Пробовал  
________________
var
lostr:double;
.....
writeln(f,lostr);
...
edit1.text:=lostr;
________________
 
Получил ошибку. [Error] Unit_444.pas(94): Incompatible types: 'String' and 'Double'
 

Цитата:
 
Цитата:Например ComboBox называется "Диагноз" и в нем выбор из 4 вариантов. Вариант пишется. А нельзя записать так: Диагноз=Близорукость.  
Что произойдет с форматом выходных данных если интерфейс программы будет переведен на другой язык?  
 

Да вроде ничего. Там только дата рождения, текстовые значения и числа.  
 

Цитата:
 
Цитата:Вывод данных из файла в форму. Пробовал выводить в свойство Text  LabelEdit и Edit значения переменных. Не получилось.    
 
Код в студию. Что пишет компилятор, что выводит программа?  
Не обязательно всю простыню, достаточно одного контрола.  

[/q]  
Выше привел часть кода.
 
imonah

Цитата:
 
Можно... Либо на событие FormCreate запоминать в переменные имена комбобоксов и потом их выводить  
 
Код:  
cbText:=ComboBox1.Text;  
 
.....(после изменения в боксе Text будет уже иметь выбранное значение)  
 
WriteLn(f,cbText,+'='+ComboBox1.Text);  
 
Ну или просто писать:  
 
Код:  
WriteLn(f, 'Диагноз='+ComboBox1.Text);  
 

Пошел втупую. WriteLn(f, 'Диагноз=',ComboBox1.Text);
Все получилось.
 
Только обратно в бокс значение вывести не получается.
 
______________________
 
 
 

Всего записей: 337 | Зарегистр. 12-06-2001 | Отправлено: 19:04 19-09-2005
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
edit1.text:=lostr;  

угу. правильно матюкакется.  
 
edit1.text:=FloattoStr(lostr); //для вещественных (которые дробные) Возможно потребуется использование FloatToStrF для "более правильного" форматирования.
edit1.text:=InttoStr(IntVar); // Для целых
edit1.text:=DateToStr(IntVar); // Для дат
соответственно StrToXXX переводит из строки в требуемый тип. (ххх означает нужный тип)
 
Еще одно примечание.
Вполне возможно вам будет удобнее работать через TStringList в место WriteLn.
У этого класса есть методы SaveToFile, LoadFromFile которые записывают/считывают свое содержимое в файл/из файла.
Почитайте HELP, может подойдет.
 

Цитата:
. А это с Shell не сделаешь. А показать текст письма несложно в Hel

посмотрите на эти ссылки там есть код, код не проверял, это ссылки по поиску Google.
http://forum.codenet.ru/showthread.php?s=733196f257ba0af3b83662f543223b0e&postid=89417 http://www.developing.ru/forum/viewtopic.php?p=5264 (здесь есть строка idSMTP1)
http://www.delphikingdom.com/asp/itemq.asp?ItemID=36&ComponentID=&Count=10&pNo=3 а здесь их море :)

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 19:55 19-09-2005
DUMAND



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vserd
Большое спасибо всем за помощь. Теперь появляется основа под методом тыка.
 
С почтой пока решил подождать. Кстати, по ссылкам Shell не работает с Attach.  
 
Вопрос по чтению из текстового файла. Файл:
____________________
Фамилия=Иванов
Имя=Петр
Отчество=Сидорович
Имя пользователя= Папа
Дополнительная информация=В 1989 было сотрясение мозга
Дата рождения=14.09.1977
Пол=мужской
Пользование очками или линзами=Очки
Продолжительность пользования=3
Левый глаз. Рефракция=0.75
Левый глаз. Диагноз=Близорукость
Левый глаз. Амблиопия=Неизвестно
Левый глаз. Оптическая коррекция=0.5
Правый глаз. Рефракция=0.5
Левый глаз. Диагноз=Близорукость
Правый глаз. Амблиопия=Неизвестно
Правый глаз. Рефракция=0.25
Косоглазие=Нет
Дальтонизм=Неизвестно
Хирургическая коррекция=Нет
Левый глаз. Астигматизм=Есть
Правый глаз. Астигматизм=Нет
______________________
 
Как читать переменные, чтобы читались только значения после = ?
 
Если бы тип совпадал, то было бы верно: edit1.text:=lostr; ?  
 
Теперь общий вопрос.
Когда начал разбираться с MAPI, нашел в Инете разные варианты кодов *.pas. Копирую, вставляю и ничего. Понял, что какие-то данные находятся в других файлах. Вот и возникают вопросы:
1. Надо ли копировать другие файлы (например *.dfm) из другого проекта в папку со своим?
2. Предположим в приложение есть дополнительная форма form2. Как открыть ее кнопкой button1 из основной формы form1? И как закрыть кнопкой button2 в форме form2.  

Всего записей: 337 | Зарегистр. 12-06-2001 | Отправлено: 23:08 19-09-2005
ALeXkRU



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DUMAND

Цитата:
2. Предположим в приложение есть дополнительная форма form2. Как открыть ее кнопкой button1 из основной формы form1? И как закрыть кнопкой button2 в форме form2.

щелкнуть по кнопке Button1 и в обработчике вставить

Код:
Form2.show;

это для открытия
чтобы закрыть -  
в обработчике кнопки button2

Код:
Close;


Цитата:
1. Надо ли копировать другие файлы (например *.dfm) из другого проекта в папку со своим?

это конечно зависит от кода - если он использует компоненты формы - конечно нужно добавлять и файл формы...
Цитата:
Если бы тип совпадал, то было бы верно: edit1.text:=lostr; ?

да конечно. просто не нужно забывать, что для Edit1.Text - нужен тип String.
 
Добавлено:

Цитата:
Как читать переменные, чтобы читались только значения после = ?

например, если str1 - строка из текстового файла, то вот такой вызов  
 
Код:
str2:= Copy(str1, Pos('=',str1)+1);

вернёт в переменную str2 значение строки после знака '='
ну, а дальше - простой перебор строк из файла и присвоение результатов.

Всего записей: 11998 | Зарегистр. 03-12-2003 | Отправлено: 00:18 20-09-2005 | Исправлено: ALeXkRU, 01:00 20-09-2005
PowerChute



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DUMAND

Цитата:
Вопрос по чтению из текстового файла.

Да это же обыкновенный ini-файл.
 
Пример из хэлпа:
procedure TForm1.FormActivate(Sender: TObject);
 
var
  MyIniFile: TIniFile;
begin
  MyIniFile := TIniFile.Create('myapp.ini');
  with MyIniFile do
  begin
    if ReadBool('AutoLoad', 'FormProperties', False) = True then
    begin
      Visible := ReadBool('FormOptions', 'Visible', True);
      Color := TColor(ReadInteger('FormOptions', 'Color', clNormalBackground));
      Caption := ReadString('FormOptions', 'Caption', 'Main');
  end;
  MyIniFile.Free;
 
end;

Всего записей: 520 | Зарегистр. 13-10-2004 | Отправлено: 05:44 20-09-2005
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DUMAND

Цитата:
Вопрос по чтению из текстового файла. Файл:  
____________________  
Фамилия=Иванов  

Воспользуйтесь TIniFile.
Я не пробовал работать с пустой секцией
edit1.text := MyIniFile.ReadString('', 'Левый глаз. Диагноз', 'Не задан');  
Попробуйте, если не получится вам прийдеться изменить код который формирует файл с данными. Возможно два варианта:
1. В коде  с WriteLn добавить еще один WriteLn(F, '[UserInfo]');
   Чтение будете делать edit1.text := MyIniFile.ReadString('UserInfo', 'Левый глаз. Диагноз', 'Не задан');  
 
2. Преписать этот код заново с использованием TIniFile.
(преймущество в том что вам не нужно будет следить за порядком вызовов при записи)
Можете также структурировать данные в файле.
Например так
[UserInfo]
фамилия=
Имя=
 
[Diagnoz]
Левый глаз. Рефракция=
правый глаз.  =......
 
[TestingData]
String1=1.00000 0.0004  
String2=999 989898 6765  
ну и так далее.
А потом писать из разных мест программы в этот файл не заботясь о других секциях.
 

Цитата:
2. Предположим в приложение есть дополнительная форма form2. Как открыть ее кнопкой button1 из основной формы form1? И как закрыть кнопкой button2 в форме form2.  

Все зависит от.... :)
1. Если форма модальная (должна не давать работать с программой до тех пор пока ее не закроют), тогда в секции Implementation в Uses напишите что-то на подобии:
Uses ..., UForm2; (UForm2 -- имя модуля (файла))
 
в обработчике button1.click(...) пишете
var Frm : TForm2;
begin
  Frm := TForm2.Create(Application);
  try
    Frm.ShowModal
  finally
   Frm.Free;
  end;
end;
 
В Form2.Button2.click()
пишете
  ModalResult := MR_OK;
 
2. Если форма не модальная (В чем я сомневаюсь). тогда все немного сложнее:
в  
interface  
uses .... , UForm2;
в  
 TForm1 =Class(...)
 private
   FFrm : TFORM2;
 .....
в обработчике button1.click(...) пишете
 
begin
  if not Assigned(FFrm) then begin
     Frm := TForm2.Create(Application);
  end;
  FFrm.Show
end;
в обработчиках Form1.OnCreate()
пишете  
begin
  inherided;
  .....
  FFrm := nil;
end;
в Form1.On.Destroy()
begin
  .....
 
  FFrm.Free
  FFrm  := nil;
  .....
 
  inherided;
end;
 
В Form2.Button2.click()
пишете
   Close;
 
В Form2.OnClose()
пишете
begin
   Action := caHide;
end;

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 12:38 20-09-2005
DUMAND



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ALeXkRU
PowerChute
vserd
 
Большое спасибо. Сажусь разбираться. Завидую вам. Как вы разбираетесь во всем этом!

Всего записей: 337 | Зарегистр. 12-06-2001 | Отправлено: 13:19 20-09-2005
PowerChute



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DUMAND
Зато в медицине мы полные профаны.

Всего записей: 520 | Зарегистр. 13-10-2004 | Отправлено: 13:52 20-09-2005
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DUMAND
посмотри на себя со стороны, сплошные матюки Диоптрии, дифракции, рефрацкии, астигматизм, а всяких болячек только ты сходу сможешь назвать столько что у народа уши завянут. Как в них только разобраться? Что зачем и тем более почему, от этого свихнуться можно, а заочно давать консультации это вобще высший пилотаж :))
 
У нас все простенько. Неполучается, код в студию, посмотрел и сказал, вот тут ошибочка, а вот тут можно улучшить. А кроме того это железяка, можно попробовать много раз, а на человеке так не получится. Так что у тебя работка посложнее.
 
Просто каждый занимается своей областью и, иногда, по нужде\работе вторгается в область другого :))). Если не занешь спрашиваешь, вот и набираешся опыта.

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 15:56 20-09-2005
zvyagaaa



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопрос по базам данных Access. Из-за чего может возникать ошибка в ADOTable Типа "не удается найти строку для обновления. Некоторые значения могли быть изменены со времени ее последнего чтения" Кто-нибудь сталкивался с этим? Какие-нибудь есть идеи почему это может быть? Методом проб и ошибок нашел, что виновна функция OnCalc. Но Какие методы вызывают ошибку найти не могу. Помогите пожалуйста, т.к. без OnCalc в-общем-то программа и не нужна. Спасибо.

Всего записей: 782 | Зарегистр. 02-02-2005 | Отправлено: 13:45 21-09-2005
DUMAND



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот что получилось. Работает. Спасибо.

Код:
procedure Tform1.Button1Click(Sender: TObject);
begin
try
MyIni := TIniFile.Create('Users/pacient.dat');
 
MyIni.WriteString('Common','Family',FamilyEdit1.text);
MyIni.WriteString('Common','Name',NameEdit2.text);
MyIni.WriteString('Common','SecondName',SecondNameEdit3.text);
MyIni.WriteString('Common','Login',LoginEdit4.text);
..................
finally
 MyIni.Destroy;
end;
end;
 
 
procedure TForm1.LoadButtonClick(Sender: TObject);
begin
 
try
MyIni := TIniFile.Create('Users/pacient.dat');
 
FamilyEdit1.text:=MyIni.ReadString('Common','Family','');
NameEdit2.text:=MyIni.ReadString('Common','Name','');
SecondNameEdit3.text:=MyIni.ReadString('Common','SecondName','');
LoginEdit4.text:=MyIni.ReadString('Common','Login','');
.....................................
 
finally
MyIni.Destroy;
end;
 
end;
 
end.
 
 

Всего записей: 337 | Зарегистр. 12-06-2001 | Отправлено: 12:04 22-09-2005
SergeBS



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zvyagaaa
fido.delphi.db - там FAQ. LookupCache false-> true.  
 
Добавлено:
DUMAND
Мой тебе совет: пока не поздно, пока много не наворотил, работая с текстовыми файлами, переходи на простенькую БД табличного типа. Все равно ведь когда-то захочешь статистику посмотреть, быстрый поиск поиметь и т.п. А с текстом такое - титанический ненужный труд.  
Для перехода понадобится один раз сделать простенькую конвертилку Анкета-Dbf и обратно. И все.
Завтра возможно будет время - нашлепаю тебе образчик, как это может быть.

Всего записей: 272 | Зарегистр. 19-04-2005 | Отправлено: 17:45 22-09-2005
   

Страницы: 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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi
ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru