Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Text File Einlesen und als Datenbank Datei ausgeben (https://www.delphipraxis.net/69726-text-file-einlesen-und-als-datenbank-datei-ausgeben.html)

Andidreas 19. Mai 2006 10:02

Re: Text File Einlesen und als Datenbank Datei ausgeben
 
Zitat:

Zitat von mquadrat
Wieso nimmst du eigentlich keine TStringlist? Fänd ich jetzt einfacher.

hmm mit TSTringList hab ich noch nicht gearbeitet, so lang programmier ich noch nicht in delphi...

ich hab halt von meinem kollegen halt den tipp bekommen es mit nem record zu machen, weil ich ein strukturierts txt file hab also wo ein wert immer an der gleichen stelle steht...

kann ich des mit ner TStringList auch machen???

Klaus01 19. Mai 2006 10:06

Re: Text File Einlesen und als Datenbank Datei ausgeben
 
jo,

Du mußt dann halt nur die Zeilen auch zerlegen
wie Du es jetzt auch machst.

Delphi-Quellcode:
var
  sl: TStringList;
  i: Integer;

begin
  sl := TstringList.create;
 
 if FileExists('fileName') then
     sl.loadfromFile('fileName');

  for i:=0 to sl.count -1 do
    begin
       //tu etwas mit sl.strings[i]
    end;
  sl.free; // [edit]freigeben vergessen
end;
[edit = Ergänzung]

Ein record ist in der Regel ein Datensatz
wie hier zum Beispiel

test = record
zahl: Integer;
name: String[20]
end;
Solch eine Recordstruktur kann mit einer Stringlist nicht eingelesen werden.

Ein TextFile mit einer SatzStruktur
wie hier

1 name1
2 name2
3 name3

kann mit einer Stringlist eingelesen werden, allerdings auch nur in Zeilen.
Die Zeilen müssen dann zerlegt werden um in Datenfelder getrennt zu werden.

Grüße
Klaus

Andidreas 19. Mai 2006 10:26

Re: Text File Einlesen und als Datenbank Datei ausgeben
 
hmm da hab ich aber mit meinem record weniger aufwand???

denn muss ich ja nur einmal angeben, und später wenn ich die felder meiner db-datei füll, kann ich die felder vom record direkt in die db-datei übergeben....
also ungefähr so:

Feld1DB := Record.Feld1;


ich hab jetzt lediglich nur das problem wie ich meinen string in denn record bekommen :oops:

Klaus01 19. Mai 2006 10:35

Re: Text File Einlesen und als Datenbank Datei ausgeben
 
wenn die Zeile/String immer gleich unterteilt ist
sprich so

z1 data11 data12 data13
z2 data21 data22 data23
z3 ..

dann kannst Du eigentlich mit copy (siehe Delphi Hilfe)
sehr gut den String auseinander nehmen und in
Deine Recordstruktur oder gleich in de dbpacken.

Grüße
Klaus

mquadrat 19. Mai 2006 10:36

Re: Text File Einlesen und als Datenbank Datei ausgeben
 
Welches Verfahren das bessere für dich ist, hängt halt davon ab wie deine Eingabedatei ausschaut

Andidreas 22. Mai 2006 07:49

Re: Text File Einlesen und als Datenbank Datei ausgeben
 
Zitat:

Zitat von Klaus01
dann kannst Du eigentlich mit copy (siehe Delphi Hilfe)

danke für denn tip :thumb: werds heut mal ausprobieren...

Andidreas 23. Mai 2006 13:30

Re: Text File Einlesen und als Datenbank Datei ausgeben
 
also des mit dem copy hab ich nicht hinbekommen...
ist aber auch egal...

werd jetzt meine string aus der .txt datei so auflösen...

dazu hätte ich aber eine frage:

ich komme ja von der as/400 programmierung (programmiersprache ile/rpg)
im ile/rpg steht mir folgende möglichkeit zur verfügung einen string aufzuteilen

Code:
Eval Feld1 = %Subst(Feld2,1,5);
wenn jetzt in Feld2 "hallo du" stehen würde, dann würde ich im Feld1 also "hallo" als wert reingestellt bekommen...

nun zu meiner frage, gibt es so eine ähnliche möglichkeit auch in delphi??? bzw. gibt es hier auch
eine substring methode???

bis jetzt hab ich mein problem wie folgt gelöst:

Delphi-Quellcode:
procedure TMain_Form.AddDBRecord(Parm : String);

var
Feld1 : String;
Feld2 : String;


begin

  Feld1 := Parm;

  Feld2 := copy(Feld1,1,18);
  ShowMessage(Feld2);

end;
finde diese methode allerdings etwas unellegant :oops:
mir wäre lieber wenn ich des mit substring machen könnte, falls es das gibt

Klaus01 23. Mai 2006 13:38

Re: Text File Einlesen und als Datenbank Datei ausgeben
 
ich sehe da im Moment keinen Unterschied zwischen SubStr und copy.
Vielleicht bin ich ja auch auf dem Auge blind.

Aus der Hilfe

Zitat:

Returns a substring of a string or a segment of a dynamic array.

Unit

System

Category

string handling routines

function Copy(S; Index, Count: Integer): string;
function Copy(S; Index, Count: Integer): array;

Description

S is an expression of a string or dynamic-array type. Index and Count are integer-type expressions. Copy returns a substring or sub array containing Count characters or elements starting at S[Index].


Grüße
Klaus

Andidreas 23. Mai 2006 13:44

Re: Text File Einlesen und als Datenbank Datei ausgeben
 
ja in der funktionalität besteht wirklich kein unterschied...

mich hätte nur interessiert ob es für delphi auch ein funktion gibt die sich substring nennt...
^^ werd einfach ne funktion selber schreiben die Substring heißt ;) dann hab ichs auch...


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:34 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz