AGB  ·  Datenschutz  ·  Impressum  







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

Txt datei in Paradox einlesen

Ein Thema von Bedrock · begonnen am 31. Mai 2003 · letzter Beitrag vom 3. Jun 2003
Antwort Antwort
Seite 1 von 3  1 23      
Bedrock

Registriert seit: 11. Apr 2003
20 Beiträge
 
#1

Txt datei in Paradox einlesen

  Alt 31. Mai 2003, 14:48
Txt datei in Paradox einlesen.

Wie geht das??
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 1. Jun 2003, 09:48
Hallo Bedrock,

dazu liest du die Textdatei mit Readln zeilenweise ein, zerlegst die Zeile in die einzelnen Feldinhalte und weist diese den Tabelle wieder zu, etwa so:

Delphi-Quellcode:
  Readln(d, zeile);
  myTable.Append;
  { angenommen du hast 10 Felder }
  for i := 1 to 10 do
    myTable.Fields[i-1].AsString := ZerlegeZeile(zeile, i);
  myTable.Post;
Dabei benutzt du eine Prozedur "ZerlegeZeile", die dir aus der übergebenen Zeile den i-ten Feldinhalt liefert.

Grundsätzlich ist auch die Komponente BatchMove geeignet, wenn die Struktur der Textdatei eine eindeutige Trennung der Felder erlaubt.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Bedrock

Registriert seit: 11. Apr 2003
20 Beiträge
 
#3
  Alt 1. Jun 2003, 17:07
zeile und Zerlegezeile bring mir eine Fehlermeldung.
Was meinst du damit.

Mein Textfile siegt so aus.
T 100 5 110 2 M1 Synpol Störung 0 0
alles dur Tab getrennt.
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#4
  Alt 1. Jun 2003, 17:13
Ich vermute MrSpock meinte, Du sollst eine entsprechende Prozedur schreiben, die genau diese Funktion hat. Und Zeile, denke ich, ist eine String-Variable, in die Du mit ReadLn jeweils eine Zeile Deines Textfiles einliest.
  Mit Zitat antworten Zitat
Bedrock

Registriert seit: 11. Apr 2003
20 Beiträge
 
#5
  Alt 1. Jun 2003, 17:33
etwa so??

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var d:textfile;
var i:integer;
var zeile:string;
begin
AssignFile(d, 'c:\sms\sat.txt');
  Readln(d, zeile);
  Table2.Append;
  { angenommen du hast 10 Felder }
  for i := 1 to 10 do
    Table2.Fields[i-1].AsString := (zeile);
  Table2.Post;
end;
ZerlegeZeile(zeile, i);??
versteh ich leider auch nicht
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#6
  Alt 1. Jun 2003, 17:50
Fast. Für (zeile) solltest Du einen Ausdruck oder eine Prozedur einsetzen, die Dir das i-te Element (Feld) der Textzeile liefert!
  Mit Zitat antworten Zitat
Bedrock

Registriert seit: 11. Apr 2003
20 Beiträge
 
#7
  Alt 1. Jun 2003, 18:17
oh mann ich versteh nur Bahnhof.

Kannst du mir das bite ein wenig genauer beschreiben??
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#8
  Alt 1. Jun 2003, 20:30
Hallo Bedrock,

eigentlich hat MrSpock Deine Frage beantwortet. Wenn Du damit nichts anfangen kannst - "ich verstehe nur Bahnhof" - dann solltest Du das, was Du eigentlich willst, etwas genauer formulieren, damit man Dir helfen kann.

Dazu mußt Du also mal schildern, was in Deiner Textdatei steht, und welche Informationen daraus Du in welche Felder Deiner Paradox-Datenbank übertragen willst.

Hilfreich wäre Deine Text-Datei oder ein Ausschnitt daraus (z.B. als Download).

mfg
eddy
  Mit Zitat antworten Zitat
Bedrock

Registriert seit: 11. Apr 2003
20 Beiträge
 
#9
  Alt 1. Jun 2003, 21:03
OK also dann.

Habe follgende Text Datei mit vollgenden vortlaufenden Zeilen.

T 100 5 110 0 M1 Automatenfall 0 1 0 0 0
T 100 5 110 1 M1 Not Aus 0 1 0 0 0
T 100 5 110 2 M1 Synpol Störung 0 1 0 0 0
T 100 5 110 15 M1 - M3 Brandalarm 0 1 0 0 0
.
.
.

Diese einzelnen Zeilen sollten nun jeweils in 10 Spalten in eine Datenbank geschriben werden.
das heist für die erste Zeile:
Spalte 1: T
Spalte 2: 100
Spalte 3: 5
Spalte 4: 0
Spalte 5: M1 Automatenfall
Spalte 6: 0
Spalte 7: 1
Spalte 8: 0
Spalte 9: 0
Spalte 10: 0

danach neu Datenbankzeile mit der 2. Zeile der Textdatei.

Hoffe es ist nun verständtlich.
Die aufgliderung der Textdatei ist mit einem Tabulator getrennt.
T ->Tab 100 ->Tab 5 ->Tab 110 ->Tab 0 ->Tab M1 Automatenfall-> Tab 0 ->Tab 1 ->Tab 0 ->Tab 0 ->Tab 0
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#10
  Alt 2. Jun 2003, 08:08
Zitat von Bedrock:
T 100 5 110 0 M1 Automatenfall 0 1 0 0 0
T 100 5 110 1 M1 Not Aus 0 1 0 0 0
T 100 5 110 2 M1 Synpol Störung 0 1 0 0 0
T 100 5 110 15 M1 - M3 Brandalarm 0 1 0 0 0
.
.
.
Sind die einzelnen Spalten durch einen Tabulator getrennt? Falls nicht, dann könnte es ein Problem mit den unterschiedlich langen Texte (M1...) geben.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 01:43 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