| Autor |
Beitrag |
Leathl
      
Beiträge: 276
|
Verfasst: Sa 11.01.03 17:42
Zuletzt bearbeitet von Leathl am So 16.08.09 12:36, insgesamt 2-mal bearbeitet
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Sa 11.01.03 18:06
nimm doch einfsach 'ne INI-Datei.
Dafür gibt's in Delphi schon funktionen für. Wenn du dann nicht willst, daß hinter der Datei .ini steht und somit jeder erfahrene Windowsanwender gleich weiß, wie die Datei aufgebaut ist, kannst du die Dateiendung ja immer noch ändern (in tcl meinetwegen). Aber vom Aufbau her ist sie trotzdem eine INI-Datei, die recht einfach gestrickt sind (clever, was?).
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
Leathl 
      
Beiträge: 276
|
Verfasst: Sa 11.01.03 18:49
Zuletzt bearbeitet von Leathl am So 16.08.09 12:36, insgesamt 1-mal bearbeitet
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 11.01.03 19:26
|
|
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Sa 11.01.03 19:52
Hallo,
| Leathl hat folgendes geschrieben: | ich weiss, dass es wie eine inidatei ist, aber ich wollte eigentlich keine inidatei  |
dann kannst du auch z.B. mit Typisierten Dateien arbeiten. Ein Topic zu dem Thema findest du hier.
Gruß
Klabauterann
|
|
Leathl 
      
Beiträge: 276
|
Verfasst: Sa 11.01.03 19:57
Zuletzt bearbeitet von Leathl am So 16.08.09 12:37, insgesamt 1-mal bearbeitet
|
|
tommie-lie
      
Beiträge: 4373
Ubuntu 7.10 "Gutsy Gibbon"
|
Verfasst: Sa 11.01.03 20:04
warum so umständlich?
Mach's doch genau umgekehrt:
INI-Dateien haben Sections und Werte.
Als Sections nimmst du die Sparten, als Werte die Einträge darin. Also so:
[Sparte1]
count=5
1=a
2=b
3=c
4=d
5=e
[Sparte2]
count=2
1=f
2=g
Count gibt also an, wieviele einträge da sind (wäre sonst schwieriger mit INI-Dateien...) und du hast für jede der Sparten eine Section.
_________________ Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
|
|
Leathl 
      
Beiträge: 276
|
Verfasst: So 12.01.03 00:01
Zuletzt bearbeitet von Leathl am So 16.08.09 12:37, insgesamt 1-mal bearbeitet
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 12.01.03 03:51
Also weißt du doch nicht, wie Ini-dateien funktionieren oder wie? Denn wenn du es wüßtest, sollte das ganze kein Problem sein. Kuck dir einfach noch mal das Tutorial an.
|
|
Leathl 
      
Beiträge: 276
|
Verfasst: So 12.01.03 15:00
Zuletzt bearbeitet von Leathl am So 16.08.09 12:37, insgesamt 1-mal bearbeitet
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: So 12.01.03 19:28
Hi,
Zugriff auf die Spaltenüberschriften bekommst Du so:
Quelltext 1:
| ListView1.Column [0].Caption := 'Erste Spalte'; |
Zugriff auf die Items:
Quelltext 1:
| ListView1.Items [0].Caption := 'Erster Eintrag'; |
Schau Dir mal in der Hilfe unter den Eigenschaften Items die Beispiele an!
Gruß
TINO
|
|
Leathl 
      
Beiträge: 276
|
Verfasst: So 12.01.03 20:48
Zuletzt bearbeitet von Leathl am So 16.08.09 12:38, insgesamt 1-mal bearbeitet
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mo 13.01.03 08:33
Hallo Leathl,
fangen wir mal am Anfang an:
Quelltext 1:
| for i:= 1 to ListView1.Items-1 do |
Du greifst hier direkt auf die Eigenschaft Items zu. Das hat wenig sinn da Du lieber auf die Eigenschaft Count verweisen solltest. Außerdem solltest Du die For-Next-Schleife bei 0 beginnen lassen:
Quelltext 1:
| for i := 0 to ListView1.Items -1 Do |
Da Du nach dieser Zeile kein Begin geschrieben hast wird nur die darauf folgende Zeile in der For-Next-Schleife ausgeführt. Also: setz ein Begin und ein End ein:
Quelltext 1: 2: 3: 4:
| for i := 0 to ListView1.Items -1 Do Begin { ... } End; |
Warum erstellst Du das Ini-Objekt bei jedem durchlauf der Schleife? Macht glaube ich auch wenig sinn. Deshalb pack es vor dem Begin der Schleife:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| Var i: Integer; Ini: tIniFile; Begin Ini := tIniFile.Create ('tlc.ini');
For i := 0 To ListView1.Items -1 Do Begin { ... } End;
Ini.Free; End; |
In der For-Next-Schleife müssen jetzt nach ein ander die Items (also die Einträge in der ListView) gespeichert werden. Die Caption der Einträge bekommst Du so:
Quelltext 1:
| ListView1.Items [I].Caption |
Da deine ListView ja anscheinend 4 Spalten besitzt musst Du noch die SubItems speichern. An diese kommst Du zum Beispiel so:
Quelltext 1:
| ListView1.Items [I].SubItems [0] |
Da ich aus Deinem Code-Beispiel nicht schlau geworden bin wie Du die Einträge genau abgespeichern willst kann ich Dir auch nicht genau sagen wie der Code innerhalb der For-Next-Schleife aussieht. Aber mit den o. g. Hinweisen solltest Du schon mal vorankommen. Wenn nicht dann poste einfach!
Gruß
TINO
|
|
Leathl 
      
Beiträge: 276
|
Verfasst: Mo 13.01.03 14:54
Zuletzt bearbeitet von Leathl am So 16.08.09 12:39, insgesamt 1-mal bearbeitet
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 13.01.03 15:53
Mit ParamStr(0) bekommst du dein Programmpfad inklusive Anwendungsnamen.
|
|
Leathl 
      
Beiträge: 276
|
Verfasst: Mo 13.01.03 20:30
Zuletzt bearbeitet von Leathl am So 16.08.09 12:39, insgesamt 1-mal bearbeitet
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Di 14.01.03 09:30
Hi,
was ich an Deinem Code nicht verstehe sind
- Warum schreibst Du die folgenden Anweisungen in die For-Next-Schleife?
Quelltext 1: 2: 3: 4: 5:
| ini.WriteString('Daten','Lehrer/in',Edit1.Text); ini.WriteString('Daten','LTel',Edit2.Text); ini.WriteString('Daten','Schule',Edit3.Text); ini.WriteString('Daten','Klasse/Stufe',Edit4.Text); ini.WriteString('Daten','Jahrgang',Edit5.Text); |
- Warum seht die Anweisung
Ini.Free
Innerhalb der For-Next-Schleife?
Gruß
TINO
|
|
Leathl 
      
Beiträge: 276
|
Verfasst: Di 14.01.03 16:02
Zuletzt bearbeitet von Leathl am So 16.08.09 12:40, insgesamt 1-mal bearbeitet
|
|
Leathl 
      
Beiträge: 276
|
Verfasst: Mi 15.01.03 14:19
Zuletzt bearbeitet von Leathl am So 16.08.09 12:40, insgesamt 1-mal bearbeitet
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mi 15.01.03 14:31
Hallo,
ich würde Dir erstmal vorschlagen Deinen Quelltext ordentlich zu formatieren.
Bist Du sicher das Deine IF-Anweisung
Quelltext 1: 2: 3: 4:
| if OpenDialog1.Execute then ListView1.Clear; OpenDialog1.DefaultExt:= 'ini'; {...} |
korrekt ist? Fehlt da nicht ein Begin und ein End? Also so:
Quelltext 1: 2: 3: 4: 5: 6:
| if OpenDialog1.Execute then Begin ListView1.Clear; OpenDialog1.DefaultExt:= 'ini'; {...} End; |
Gruß
TINO
|
|