[Delphi] section toevoegen aan ini file.

Pagina: 1
Acties:
  • 150 views sinds 30-01-2008
  • Reageer

  • DaFearLess
  • Registratie: Juni 2001
  • Niet online
Ik ben nu al een paar dagen bezig met een klein programmatje aan het schrijven.
hier maak ik gebruik van inifiles.

is het mogenlijk om via delphi een nieuwe section toetevoegen?

dus dat er [blaat] bij komt te staan?

of moet ik dit gewoon met een writeln doen?

specs : http://specs.tweak.to/7435


Verwijderd

uit de delphi help (tinifile.writestring):
procedure WriteString(const Section, Ident, Value: String); override;

Description

Call WriteString to write a string value to an INI file. Section identifies the section in the file that contain the key to which to write. Ident is the name of the key for which to set a value. Value is the string value to write.

Note: Attempting to write a data value to a nonexistent section or attempting to write data to a nonexistent key are not errors. In these cases, WriteString creates the section and key and sets its initial value to Value.

  • DaFearLess
  • Registratie: Juni 2001
  • Niet online
Helaas ik heb het geprobeerd maar het gaat niet werken

ik heb het nu als volgt.

code:
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm2.Button1Click(Sender: TObject);
var
        MyIni   : TINIFile;
        IniFile : string;
begin
        IniFile := ExtractFilePath(application.ExeName)+ 'test.ini';
        MyIni   := TINIFile.create(IniFile);

        MyIni.WriteString(Edit1.Text, 'test', Edit2.Text);

        MyIni.Free;
end;


en als ik nu op het knopje druk krijg ik de volgende melding

unable to write to d:\test\test.ini

en heb geen idee waarom hij niet kan schrijven

[ Voor 91% gewijzigd door DaFearLess op 09-01-2003 11:03 . Reden: het werkte niet ]

specs : http://specs.tweak.to/7435


Verwijderd

ik denk toch dat je iets anders dwarszit op het moment, je code werkt hier zonder problemen..

//edit
doe eens:
start --> run --> dir > d:\test\test.ini

gaat dat wel goed?

[ Voor 32% gewijzigd door Verwijderd op 09-01-2003 11:19 ]


  • Super Snackman
  • Registratie: Januari 2000
  • Laatst online: 18-07 11:51

Super Snackman

Snekgek

Mischien moet het bestand test.ini al bestaan, anders zou ik het ook niet weten. Maak dus desnoods een lege test.ini (als je die niet al hebt).

Flevostrand rulez! - It's a bird NO It's a plane NO IT IS SUPER SNACKMAN


  • DaFearLess
  • Registratie: Juni 2001
  • Niet online
het bestand test.ini bestaat al.

daar staat in

code:
1
2
[test1]
test=blaat


nu wil ik daar
code:
1
2
[test2]
test=dddd

aan toevoegen.

en dan krijg ik die melding

specs : http://specs.tweak.to/7435


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Je code is gewoon goed hoor. Het enige wat het kan zijn is dat de directory d:\test niet bestaat.

We adore chaos because we like to restore order - M.C. Escher


  • DaFearLess
  • Registratie: Juni 2001
  • Niet online
die bestaat wel wat ik gebruik het ook om te lezen en dat gaat goed

specs : http://specs.tweak.to/7435


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

dafearless schreef op 09 januari 2003 @ 10:40:
unable to write to d:\test\test.ini

en heb geen idee waarom hij niet kan schrijven
Is het bestand toevallig niet ingebruik door een andere applicatie (bijvoorbeeld notepad waarmee je het bestandje bekijkt).

www.fendt.com | Nikon D7100 | PS5


  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 21:37

Reptile209

- gers -

Notepad kan bijna niet: die opent z'n eigen kopie en vindt het verder allemaal wel best :) Is het niet je eigen lees-component die niet vrijgegeven is, waardoor hij op read-only staat?

Zo scherp als een voetbal!


  • DaFearLess
  • Registratie: Juni 2001
  • Niet online
notepad staat niet open en ik heb iedere keer MyIni.free dus dat is het ook helaas niet

specs : http://specs.tweak.to/7435


  • Reptile209
  • Registratie: Juni 2001
  • Laatst online: 21:37

Reptile209

- gers -

Ok, nog een poging:
* staat er een CR-LF aan het einde van je eerste key? Ik weet niet zeker of dat uitmaakt, probeer eens.
* Kan je 't bestand wel wissen/verplaatsen/renamen in windows?
* En vanuit je programma (ipv het toevoegen van die key)?
[edit]
* Als je het bestand leegmaakt en dan je prog runt, zelfde fout?

[ Voor 15% gewijzigd door Reptile209 op 09-01-2003 12:24 ]

Zo scherp als een voetbal!


Verwijderd

probeer eens een ander bestand? is het bestand readonly? wat geeft showmessage (extractpath(application.exename)) ?

  • DaFearLess
  • Registratie: Juni 2001
  • Niet online
als ik hem in een nieuwe file laat schrijven doet hij het perfect.

toch nog ergens een free vergeten denk ik

ik was een CloseFile(); vergeten.

alles werkt nu weer kan weer verder spelen :)

[ Voor 28% gewijzigd door DaFearLess op 09-01-2003 13:12 . Reden: t werkt nu :) ]

specs : http://specs.tweak.to/7435


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Hum, snap die CloseFile() van je niet zo, die heb ik nog nooit gebruikt bij een Ini file. Ben weer thuis en heb ff gekeken in een oud projectje van me. Ik gebruik altijd een TMemIniFile.

Delphi:
1
2
3
4
5
6
7
8
9
var
   tmpFile: TMemIniFile;
begin
   tmpFile := TMemIniFile.Create('C:\temp\test.ini');
   
   .....

   FreeAndNil(tmpFile);
end;

www.fendt.com | Nikon D7100 | PS5

Pagina: 1