AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Textfile in DB einlesen
Thema durchsuchen
Ansicht
Themen-Optionen

Textfile in DB einlesen

Ein Thema von Christian18 · begonnen am 24. Mai 2004 · letzter Beitrag vom 16. Jun 2004
Antwort Antwort
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Textfile in DB einlesen

  Alt 24. Mai 2004, 15:50
Hallo,

ich habe ein kleines Problem. Ich habe eine Paradox7 Tabelle und eine Textdatei. Die Textdatei wollte ich in die DB einlesen. Hatte auch schon mal gegonnen. Das ; soll aber nicht in die DB rein. wie mache ich das

Delphi-Quellcode:
procedure TForm1.bClick(Sender: TObject);
var

  F: TextFile;
  S: string;
begin
  if OpenDialog1.Execute then { Dialog zum Dateiöffnen anzeigen }
  begin
    AssignFile(F, OpenDialog1.FileName); { Datei ausgewählt }
    Reset(F);
    Readln(F, S1); { Erste Zeile der Datei lesen }
    Edit1.Text := S1; { String in ein TEdit schreiben }
    CloseFile(F);
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#2

Re: Textfile in DB einlesen

  Alt 24. Mai 2004, 17:48
Zitat von Christian18:
Das ; soll aber nicht in die DB rein.
Wie genau meinst du? Ein ; am Zeilenende? Wenn ja dann:
Delphi-Quellcode:
if DeinText[Length(DeinText)] = ';then
  Delete(DeinText,Length(DeinText),1);
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#3

Re: Textfile in DB einlesen

  Alt 15. Jun 2004, 13:10
hieraus werde ich nicht schlau. wie kann ich denn jetzt eine txt datei einlesen???
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Textfile in DB einlesen

  Alt 15. Jun 2004, 13:36
Zitat von Christian18:
wie kann ich denn jetzt eine txt datei einlesen???
"txt datei" ist viel zu ungenau.
Es gibt im Prinzip 2 Grundformate:
  • fixed Text Format
    Alle Felder haben eine fest definierte Länge; damit hat auch der Datensatz eine feste Länge
  • CSV (Comma Separated Values)
    Die einzelnen Felder sind durch ein Trennzeichen (meist Strichpunkt) getrennt.
    Stringfelder werden meist in Anführungszeichen eingeschlossen
In beiden Fällen werden die Datensätze meistens durch CR-LF (#13#10) getrennt.
Der Zeichensatz kann ASCCI (MS DOS-Welt), ANSI (Windows-Welt) oder ein sonstiger Zeichensatz sein.
Ausserdem kann beim CSV-Format die 1. Zeile die Feldnamen enthalten (oder auch nicht).

Man kann den Import hart codieren oder man verwendet Importkomponenten, die durch Parameter
gesteuert werden; es kommt drauf an, ob man öfters versch. Dateien importieren muss oder nur einmal.
Andreas
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#5

Re: Textfile in DB einlesen

  Alt 15. Jun 2004, 13:41
hallo,

meine textdatei ist duch ein ; getrennt wie kann ich diese jetzt einlesen und in eine paradox7 tabelle speichern???
  Mit Zitat antworten Zitat
Michael80

Registriert seit: 20. Nov 2003
Ort: Treuchtlingen
72 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Textfile in DB einlesen

  Alt 16. Jun 2004, 22:17
Hi Christian,

also ich hab das gleiche problem, bin mittlerweile so weit, das die daten in eine
TStringlist eingelesen werden
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var TempList: TStrings;
begin
    Templist := TStringlist.Create;
    with Templist do begin
    loadfromFile('C:\Datei.TXT');
    try
    finally
    end;
    end;
    end;
end.
so jetzt muss die string list nur noch zerpflückt werden nach dem ; ( hab ich noch nicht gefunden)
und dann über SQL (da ich interbase benutze müsst aber mit paradox auch gehen) mit ungefähr diesem Code in die DB geschrieben werdne
insert into TABLE(FELD1, FELD2) VALUES ('wert1','wert2') hoff ich konnt dir nen ansatz geben.


Gruß

Michael
  Mit Zitat antworten Zitat
hacki

Registriert seit: 15. Nov 2002
96 Beiträge
 
Delphi XE5 Professional
 
#7

Re: Textfile in DB einlesen

  Alt 16. Jun 2004, 23:40
Hallo Christian,

bei deinem Problem ist es völlig egal, welche Trennzeichen deine Datensätze trennen. Du möchtest ja ohnehin die gesamte Textdate in die Datenbank schreiben - und nicht die Textdatei nach Datensätzen parsen. Paradox ist da ziemlich easy.

Du richtest Dir zunächst eine Table-Komponente (ich nenne sie "TextTable") ein und verbindest sie mit deiner Zieltabelle. Die Tabelle muß ein Feld (ich nenne es kurzerhand einmal "dbtextfeld") enthalten, in dem der Text zukünftig gespeichert wird. Dieses Feld ist vom Typ BLOB(240,1).

Delphi-Quellcode:
 TextFileDataLines := TStringList.Create;

 TextFileDataLines.LoadFromFile('C:\Datei.TXT');

 try
  TextTable.Edit;
  TextTable.FieldbyName('dbtextfeld').AsString := TextFileDataLines.Text;
  TextTable.Post;
 except
 end;

 TextFileDataLines.Free;

So, das war's

übrigens lesen klappt dann wieder genau so einfach:

Delphi-Quellcode:
 TextFileDataLines := TStringList.Create;

 try
  TextFileDataLines.Text := TextTable.FieldbyName('dbtextfeld').AsString;
 except
 end;

 // verwende hier deine Stringliste, zb. zum parsen...

 TextFileDataLines.Free;

Ich hoffe, ich konnte dir helfen.

Bis denn
hacki
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz