Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.04;
Скачать: CL | DM;

Вниз

У меня проблемы с FileIni, работаю в 2000, создал файл ini в   Найти похожие ветки 

 
ossa   (2003-08-25 09:28) [0]

блокноте-Filecoping.txt
[StrSection1]
StrRun1=c:\a1

[StrSection2]
StrRun2=c:\a2

и пересохранил в фаре, получил Filecoping.ini
затем в проге обращаюсь к ней.
procedure TForm1.FormCreate(Sender: TObject);
var FileIning:TIniFile;
FileBuf1:TStrings;
FileBuf2:Tstrings;
begin
If FileExists("Filecoping.ini") then
Begin
FileIning:=TIniFile.Create("Filecoping.ini");
FileIning.ReadSectionValues("StrSection1",FileBuf1);
FileIning.ReadSectionValues("StrSection2",FileBuf2);
FileIning.Free;
StaticText1:=string(FileBuf1);
StaticText2:=string(FileBuf2);
Edit1.Text:=StaticText1;
/////////////////////////////////////////////////////
//StaticText1 описан как const
//uses Windows, Messages, SysUtils, Classes, Graphics,
//Controls, Forms, Dialogs,StdCtrls,Menus,FileCtrl,IniFiles;
//const StaticText1:string="";
// StaticText2:string="";
////////////////////////////////////////////////////
Edit2.Text:=StaticText2;
end;

end;
компилируеться нормально, но при прогоне проги на строке
FileIning.ReadSectionValues("StrSection1",FileBuf1);
вытаскиает дебагер и выдает ошибку : обращение по адресу 0000
Filecoping.ini лежит тамже где и ехе-файл.
Помогите пожалуйста разобраться.


 
Bel ©   (2003-08-25 09:33) [1]

А объекты TStrings (FileBuf1 и FileBuf2) создавать кто будет?


 
ossa   (2003-08-25 09:42) [2]

var FileIning:TIniFile;
FileBuf1:TStrings;
FileBuf2:Tstrings;
begin
FileBuf1.Create;//ошибка по адр.0000
FileBuf1.Create;
If FileExists("Filecoping.ini") then
Begin
FileIning:=TIniFile.Create("Filecoping.ini");
FileIning.ReadSectionValues("StrSection1",FileBuf1);
FileIning.ReadSectionValues("StrSection2",FileBuf2);


 
Song ©   (2003-08-25 09:43) [3]

2ossa (25.08.03 09:42) [2]
И что? Ты думаешь, что если ты описал переменные, значит ты их создал? :)


 
Bel ©   (2003-08-25 09:49) [4]

> FileBuf1.Create;//ошибка по адр.0000

FileBuf1 := TStrings.Create;


 
ossa   (2003-08-25 09:51) [5]

помогите, не могу понять
делал

FileBuf1.Create;
и
FileBuf1:="";
и
FileBuf1.Text:="";

не получаеться, не знаю как создать объекты :(


 
Song ©   (2003-08-25 09:51) [6]

FileBuf1:=TStringList.Create


 
ossa   (2003-08-25 10:13) [7]

можно еще узнать
FileIning.ReadSectionValues("StrSection1",FileBuf1);

в FileBuf1 нужно получить c:\a1 из ини-файла

я делаю так
StaticText1:=string(FileBuf1.Text);
получаю
StrRun1=C:\a1||
помогите как корректно прочитать с ини файла


 
Bel ©   (2003-08-25 10:20) [8]

Может, имеет смысл использовать ReadString вместо чтения всей секции.


 
ossa   (2003-08-25 10:26) [9]

Помогите пожалуйста, я как раз и хочу методом
FileIning.ReadSectionValues("StrSection1",FileBuf1);
получить не всю секцию, а только значение
в книге написано что, используя ReadSectionValues можно во втором парамметре получить значение


 
ossa   (2003-08-25 11:51) [10]

Все разобрал
begin
FileBuf1:=TStringList.Create;
FileBuf2:=TStringList.Create;
If FileExists("Filecoping.ini") then
Begin
FileIning:=TIniFile.Create("Filecoping.ini");
FileIning.ReadSectionValues("StrSection1",FileBuf1);
FileIning.ReadSectionValues("StrSection2",FileBuf2);
FileIning.Free;
StaticText1:=string(FileBuf1. Values["StrRun1"]);
StaticText2:=string(FileBuf2. Values["StrRun2"]);
Edit1.Text:=StaticText1;
Edit2.Text:=StaticText2;
end;


 
snake1977   (2003-08-25 11:55) [11]

Вот твоя процедура

procedure TForm1.FormCreate(Sender: TObject);
var FileIning:TIniFile;
FileBuf1:TStringList;
FileBuf2:TstringList;
begin
FileBuf1:=TStringList.Create;
FileBuf2:=TStringList.Create;
If FileExists(ExtractFilePath(ParamStr(0)+"Filecoping.ini") then
Begin
FileIning:=TIniFile.Create(ExtractFilePath(ParamStr(0)+"Filecoping.ini ");
FileIning.ReadSectionValues("StrSection1",FileBuf1);
FileIning.ReadSectionValues("StrSection2",FileBuf2);
FileIning.Free;
все что ниже убирается!!!!!
->> StaticText1:=string(FileBuf1);
->> StaticText2:=string(FileBuf2);
->> Edit1.Text:=StaticText1;
->> /////////////////////////////////////////////////////
->> //StaticText1 описан как const
->> //uses Windows, Messages, SysUtils, Classes, Graphics,
->> //Controls, Forms, Dialogs,StdCtrls,Menus,FileCtrl,IniFiles;
->> //const StaticText1:string="";
->> // StaticText2:string="";
->> ////////////////////////////////////////////////////
->> Edit2.Text:=StaticText2;
и вставляется следующее :)
Edit1.Text:=FileBuf1.Text;
Edit2.Text:=FileBuf2.Text;
хотя если ты ис пользуеш иники, то тогда зачем его в текст преобразовывать???
вероятнее надо было бы так :
Edit1.Text:=FileBuf1.Values["название первого параметра"];
end;

end;


 
ossa   (2003-08-25 12:20) [12]

спасибо за ответ
еще вопрос

Edit2.Text:=c:\a1
FileIning:=TIniFile.Create("Filecoping.ini");
FileIning. WriteString("StrSection2","StrRun2",Edit2.Text);
записывает в файл-ини следующее
[StrSection2]
StrRun2=c:\a1
у меня не записывает, неправильно применил ф-ю или все верно написал


 
ossa   (2003-08-25 12:47) [13]

спасибо разобрал



Страницы: 1 вся ветка

Текущий архив: 2003.09.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
14-10958
Soft
2003-08-15 15:58
2003.09.04
SCO: крысы бегут


1-10685
МАКСИК
2003-08-21 08:26
2003.09.04
Ище вопросик...


7-11012
AdMiRaL
2003-06-22 20:54
2003.09.04
Faili


3-10572
Denkop
2003-08-14 12:46
2003.09.04
Связи посредством SQL


14-10939
Skalp
2003-08-16 18:26
2003.09.04
Autorun у CD привода.