| Autor |
Beitrag |
shroty
Hält's aus hier
Beiträge: 10
D7 Pers
|
Verfasst: Fr 22.10.04 10:32
hi!
hab folgendes problem:
ich will was aus einer ini-datei auslesen.
hab das ini-tutorial und alles wie darin beschrieben gemacht und wollte die folgende funktion ausführen:
Quelltext 1: 2: 3: 4: 5: 6: 7:
| function TeNa(tkurz: string): string; name := TIniFileCreate('tena.ini'); try tlang := name.ReadString('Teams', tkurz, tkurz); finally name.Free end; |
das ganze soll aus ’tena.ini’ ein kürzel ’tkurz’ zu einem kompletten namen machen ’tlang’.
nun kommt beim compilieren aber immer: Unbekannte Anweisung ’name’
ich hab 'name' unter var als TIniFile deklariert und auch unter uses IniFiles mit reingenommen!
kann mir jemand sagen woran das liegt, dass das nicht will. achso hab hier delphi 7 enterp.
ciao shroty
|
|
MrCoder
      
Beiträge: 65
WinXP, SuSE Linux
D7 Ent
|
Verfasst: Sa 23.10.04 12:34
Hi,
so hab die Fehler im Code beseitigt.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| function TeNa(tkurz: string): string; var name: TIniFile; begin name := TIniFile.Create('tena.ini'); try TeNa := name.ReadString('Teams', tkurz, tkurz); finally name.Free end; end; |
MfG,
MrCoder
|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Sa 23.10.04 19:35
- name ist ein reserviertes wort
- setze den Constructor in den Try/Finally Block ansonsten ist er zwecklos.
grez
msch
_________________ ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Sa 23.10.04 19:57
| MSCH hat folgendes geschrieben: | | - name ist ein reserviertes wort |
Das ist mir neu ... Du meinst sicherlich Name wird in diesem Kontext bereits durch die Form vergeben. K, das wäre richtig, ABER Name ist KEIN reserviertes Wort.
| MSCH hat folgendes geschrieben: | | - setze den Constructor in den Try/Finally Block ansonsten ist er zwecklos. |
Nein, auch falsch. tzzz Wo hast du blos programmieren gelernt
Der Construktor kommt GENERELL vor den Try\Finally-Block, da dir sonst der Compiler (aus berechtigtem Grund) ne Warnmeldung ausspuckt, dass du das Objekt nicht initialisierst. Tritt im Konstruktor ein Fehler auf, sorgt der Construktor selbst für die Restlose Speicherfreigabe.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
shroty 
Hält's aus hier
Beiträge: 10
D7 Pers
|
Verfasst: Sa 23.10.04 22:13
vielen dank!
bis auf einen Punkt und das begin/end hats ja gestimmt!
ciao shroty
|
|
shroty 
Hält's aus hier
Beiträge: 10
D7 Pers
|
Verfasst: So 24.10.04 13:35
nur zur vollständigkeit: eine kleine sache muss noch geändert werden, sonst funktioiert es nicht!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| function TeNa(tkurz: string): string; var name: TIniFile; begin name := TIniFile.Create('.\tena.ini'); try TeNa := name.ReadString('Teams', tkurz, tkurz); finally name.Free end; end; |
ohne .\ funktioniert es bei xml-files aber bei ini-files gehts nicht! auch komisch, aber ist so! mit funktionierts in beiden fällen!
|
|
Harry M.
      
Beiträge: 754
Win 2000, XP
D2005
|
Verfasst: Fr 29.10.04 21:39
hier mal nen beispiel wie ich ini's behandle
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:
| unit Ini;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, IniFiles; type TForm1 = class(TForm) BitBtn1: TBitBtn; Label1: TLabel; Label2: TLabel; procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); private public end; var Form1: TForm1; implementation {$R *.DFM}
procedure TForm1.FormDestroy(Sender: TObject); var IniDat: TIniFile; begin IniDat := TIniFile.Create('.\Position.Ini'); with IniDat do begin WriteInteger('Position', 'Links', Left); WriteInteger('Position', 'Oben', Top); WriteInteger('Position', 'Rechts', Width); WriteInteger('Position', 'Unten', Height); end; IniDat.Free; end; procedure TForm1.FormCreate(Sender: TObject); var IniDat: TIniFile; begin IniDat := TIniFile.Create('.\Position.Ini'); with IniDat do begin Left := ReadInteger('Position','Links', Left); Top := ReadInteger('Position','Oben', Top); Width := ReadInteger('Position','Rechts', Width); Height:= ReadInteger('Position','Unten', Height); end; IniDat.Free; end; end. |
|
|
|