|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Вопрос по ini файлам
Вот кусок кода:
... procedure TForm1.Button1Click(Sender: TObject); var count:integer; sFile: string; Ini: TIniFile; begin if not FileExists(sFile) then begin Ini:=TIniFile.Create('D:\test.ini'); Ini.WriteInteger('General', 'count', 0); Ini.Free; end; sFile := 'D:\test.ini'; if FileExists(sFile) then begin Ini := TIniFile.Create(sFile); Ini.ReadInteger('General', 'count', count); count:=count+1; Ini.WriteInteger('General', 'count', count); {или так Ini.WriteInteger('General', 'count', count+1); никакой разницы} Ini.Free; end; end; ... Здесь не обновляется count всё время устанавливает в одной проге 1, а тут Ну почему ??? И выводит count=4357785 Ну помогите разобраться |
#2
|
||||
|
||||
Нужно просто было правильно объявить переменную count.
Код:
... var Form1: TForm1; count:integer=0; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var sFile: string; Ini: TIniFile; begin if not FileExists(sFile) then begin Ini:=TIniFile.Create('D:\test.ini'); Ini.WriteInteger('General', 'count', 0); Ini.Free; end; sFile := 'D:\test.ini'; if FileExists(sFile) then begin Ini := TIniFile.Create(sFile); Ini.ReadInteger('General', 'count', count); count:=count+1; Ini.WriteInteger('General', 'count', count); {èëè òàê Ini.WriteInteger('General', 'count', count+1); íèêàêîé ðàçíèöû} Ini.Free; end; end; Кому я должен - всем прощаю!!!! |
#3
|
||||
|
||||
Увы
В одном случае помогло, в другом нет. Не добавляет строку, не изменяте count
Что же не так ? |
#4
|
||||
|
||||
Поподробнее опиши свою проблему. С того что ты написал, я ничо не понял.
Кому я должен - всем прощаю!!!! |
#5
|
||||
|
||||
Может так:
Код:
procedure TForm1.Button1Click(Sender: TObject); var sFile: string; Ini: TIniFile; count:integer; begin if not FileExists(sFile) then begin Ini:=TIniFile.Create('D:\test.ini'); count:=0; Ini.WriteInteger('General', 'count', 0); Ini.Free; end; sFile := 'D:\test.ini'; if FileExists(sFile) then begin Ini := TIniFile.Create(sFile); Ini.ReadInteger('General', 'count', count); count:=count+1; Ini.WriteInteger('General', 'count', count); {èëè òàê Ini.WriteInteger('General', 'count', count+1); íèêàêîé ðàçíèöû} Ini.Free; end; end; Кому я должен - всем прощаю!!!! |
#6
|
||||
|
||||
Подробности
...
var Form1: TForm1; count:integer=0; implementation {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject); var sFile: string; Ini: TIniFile; begin if not FileExists(sFile) then begin Ini:=TIniFile.Create('D:\test.ini'); Ini.WriteInteger('General', 'count', 0); Ini.Free; end; sFile := 'D:\test.ini'; if FileExists(sFile) then begin Ini := TIniFile.Create(sFile); Ini.ReadInteger('General', 'count', count); Ini.WriteInteger('General', 'count', count+1); Ini.Free; end; end; Почему не работает таймер, когда кнопка, то всё работат. Помогите разобраться... Последний раз редактировалось Oleg, 22.12.2007 в 11:47. |
#7
|
||||
|
||||
Во первых:
Читай внимательнее описание функций и процедур, т.к ReadInteger - это ФУНКЦИЯ, которая возвращает считанное значение ключа, а вот её третий параметр - это значение по умолчанию, которое функция возвращает, если ключ не найден. Во вторых: Пиши код проще, тогда и ошибок в нём будет меньше - вот зачем тебе две проверки на существование файла в одной процедуре? Не проще ли так: Код:
var count:integer=0; procedure TForm1.Timer1Timer(Sender: TObject); var sFile: string; Ini: TIniFile; begin sFile := 'D:\test.ini'; if FileExists(sFile) then begin Ini:=TIniFile.Create(sFile); count:=Ini.ReadInteger('General', 'count', 0); Ini.WriteInteger('General', 'count', count+1); Ini.Free; end else begin Ini:=TIniFile.Create(sFile); Ini.WriteInteger('General', 'count', 0); Ini.Free; end; end; PS: И код в сообщении надо оформлять тэгами PPS: Надеюсь, я не слишком строго? |
#8
|
||||
|
||||
Спасибо !
Спасибо за помощь.
Инструкции по функциям и процедур у меня нет, только демо-версия для Delphi 6 и кое-какие неюольшие справки. Если есть, дай ссылку на хорошую инструкцию по процедурам и функциям(желательно, чтобы можно было скачать, а не на сайте) Спасибо, 1) А что собственно значит "ТЕГ" 2) не строго. Последний раз редактировалось Oleg, 22.12.2007 в 13:06. |
#9
|
|||
|
|||
Цитата:
Тэг - в данном случае способ оформить код так, чтобы он читался нормально. Располагайте исходный код внутри конструкции Код HTML:
|
#10
|
||||
|
||||
1. В форме, где пишешь ответ, есть выбор, настройка шрифта и т.д,
но также есть и кнопки # <> и т.д так вот # - вставить тэг "CODE" вокруг выделенного текста 2. Не парься и скачай нормальную версию Delphi 7 Enterprise (ну или купи диск типа "всё для программиста" - пираток завались) 3. Описание параметров функции можно получить, если навести курсор на её имя, а можно зажав Ctrl щёлкнуть по имени функции и посмотреть её код ( или описание, если она вызывается из DLL) PS: Советую отличный учебник "С.Бобровский Delphi 7 учебный курс" |
#11
|
||||
|
||||
У меня стоит Delphi 6 и Delphi 7
только там справка по английски |