Autor Beitrag
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Sa 04.03.06 15:11 
Ich wusste das, das kommen würde.
Am besten Du schreibst mal was Du so allgemein vorhast, dann könnte man dir sagen was für dein Problem das einfachste ist aber Ich denke mal das mit der Stringlist solltest du dir genauer anschauen das wird dir sicher weiter helfen.
Oder schau mal nach Ini Dateien damit ist es auch sehr einfach.
[SaWa]barrier23 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Sa 04.03.06 18:17 
jo ok
das ganze ist für eine handyübersicht gedacht die online gestellt werden soll und das sammeln der infos erleichtern soll!

und dann gibt man halt bei name :nokia 3210 ein,dann größe etc
nun findet man ja nicht immer alle angaben und dann speichert man und nimmt das nächste handy

jetzt findet man wieder neue infos
wenn man jetzt bei wieder nokia 3210 eingibt soll er dann automatisch die datein wieder laden und mann kann ergänzen!
alles verstanden?
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: So 05.03.06 10:42 
Daraus wird man auch nicht ganz schlau, hier mal ein kleines Bsp.mit Ini vieleicht hilft dir ja das.

ausblenden volle Höhe Delphi-Quelltext
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:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IniFiles;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Zuruecksetzen: TButton;
    Laden: TButton;
    Speichern: TButton;
    procedure ZuruecksetzenClick(Sender: TObject);
    procedure SpeichernClick(Sender: TObject);
    procedure LadenClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ZuruecksetzenClick(Sender: TObject);
begin
  Edit1.Clear;
  Edit2.Clear;
  Edit3.Clear;
  Edit4.Clear;
  Edit5.Clear;
end;

procedure TForm1.SpeichernClick(Sender: TObject);
var
  Ini: TIniFile;
begin
  Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Handy.ini');
  with Ini do
  begin
    WriteString(Edit1.Text,'Name',Edit1.Text);
    WriteInteger(Edit1.Text,'Groesse',StrToInt(Edit2.Text));
    WriteInteger(Edit1.Text, 'Gewicht',StrToInt(Edit3.Text));
    WriteString(Edit1.Text,'Farbe',Edit4.Text);
    WriteInteger(Edit1.Text,'Preis',StrToInt(Edit5.Text));
  end;
 Ini.Free;
end;

procedure TForm1.LadenClick(Sender: TObject);
var
  Ini: TIniFile;
begin
  Ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Handy.ini');
  with Ini do
  begin
    Edit1.Text:=ReadString(Edit1.Text,'Name','Kein Eintrag');
    Edit2.Text:=IntToStr(ReadInteger(Edit1.Text,'Groesse',0));
    Edit3.Text:=IntToStr(ReadInteger(Edit1.Text, 'Gewicht',0));
    Edit4.Text:=ReadString(Edit1.Text,'Farbe','Kein Eintrag');
    Edit5.Text:=IntToStr(ReadInteger(Edit1.Text,'Preis',0));
  end;
 Ini.Free;
end;
end.
Einloggen, um Attachments anzusehen!
[SaWa]barrier23 Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: So 05.03.06 23:38 
ich probiers morgen mal!
sieht aber vertändlich aus! ;)
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Mo 06.03.06 21:12 
Hab extra den Edits etc. keine Namen gegeben, wiel Ich denke das verwirrt den (Anfänger) zu sehr.
jomeier85
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46



BeitragVerfasst: Di 07.03.06 00:42 
Hallo

Also wenn ich das richtig sehe, willst du ne Datenbank mit Infos über Handys schreiben.

Dafür würde ich zunächst einmal die Einzelnen Infos in einem Record definieren. Etwa so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
Type  THandy = RECORD
    Name : string//Produktbezeichnung des Handys
    Hersteller : string//Hersteller des Handys
    Preis : real; //Was kostet das Handy
    Kamera : boolean; //Hat das Handy eine Kamera
    // usw. was du halt noch alles speichern willst
  end;


Dann würde ich mit einem eigenen Dateityp arbeiten: z.B. *.han

Jetzt kannst du eine Variable einführen, die etzwa wie folgt aussieht:

ausblenden Delphi-Quelltext
1:
Var  Handy : File of THandy					


In dieser Datei werden jetzt nur vollständige Datensätze vom typ THandy gespeichert.

Um diese zu verwalten, könntest du zum Beispiel beim öffnen der Datei die bereits vorhandenen Einträge in einfacher Form in einer ListBox ausgeben.

Will man nun einen Datensatz veränder wählt man ihn aus und verändert diesen.

Du solltest mit den folgenden Befehlen die Grundlagen zur Dateibehanbdlung kenne:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
AssignFile(File of Typ,Name) //meldet eine Datei unter dem angegebenen Namen an
Rewrite(File of Typ) //erzeugt und öffnet die angemeldete Datei und überschreibt diese auch
Reset(File of Typ) //öfnnet die Datei ohne sie zu überschreibern
CloseFile(File of Typ) //Schließt die Datei
Seek(File of Type, Stelle) //Springt in der Datei zur angegebenen Stelle
Append(File of Typ) //Öffnet die Datei und sprngt zum Ende um Daten anzuhängen
Read(File of Typ, Text) // Liest den Inhalt der aktuellen Zeile der Datei in Text ein
ReadLn(File of Typ, Text) //Siehe Read. Nur hier wird automatisch zur nächsten Zeile gesprungen
Write(File of Typ, Text) // Schreibt den Inhalt der aktuellen Zeile der Datei in Text
WriteLn(File of Typ, Text) //Siehe Write. Nur hier wird automatisch zur nächsten Zeile gesprungen

FileSize(File of Typ) //Liefert die aktuelle größe der Datei
FilePos(File of Typ) //Liefert die aktuelle Position des Dateizeigers
Eof(File of Type// ist true wenn das Dateiende erreicht ist


Ich hoffe das konnte dir weiterhelfen

mfg jomeier85
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1335
Erhaltene Danke: 118

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Di 07.03.06 18:24 
@jomeier85, tschuldige das ich mich gerade vor unbehagen krümme!

ich dachte die erfindung mit der strukturierten textdatei wäre die lösung für sämmtliche probleme die beim speichern von daten via records und co auftreten können.
was soll zum beispiel passieren wenn irgendwann eine weitere eigenschaft hinzukommen soll? allen bestehenden daten müssen dann gelesen und wieder geschrieben werden. oder wenn auf einmal ein längerer name nötig wird. wobei noch zu erwähnen ist das das ganze mit dem generischen typen "string" nix wird!

ich finde die lösung mit der Ini datei ganz brauchbar. oder wenn man etwas anspruchsvolleres will kann man auch XML verwenden.
jedoch würde es auch reichen die werte alle als einfache strings zu speichern wobei alle daten eines handys in einer zeile gespeichert werden und die einzelnen werte mit einem sonst nicht in den werten vorkommendem zeichen voneinander getrennt werden.

eine ini datei hat allerdings den vorteil das sie einem das speichern und laden der datei abnimmt.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
jomeier85
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 46



BeitragVerfasst: Mi 08.03.06 10:49 
ich gebe zu dass es bei der behandlung von ausschließlich strings sinnvoller ist textfiles zu benutzten.

zu dem ini file kann ich leider nicht s sagen, weil ich mir das tut noch nich durchgelesen habe, aber das klingt vielversprechend

mfg jomeier85