AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Fremdes Datenformat einfach lesen in Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Fremdes Datenformat einfach lesen in Delphi

Ein Thema von Berserker · begonnen am 16. Mai 2006 · letzter Beitrag vom 27. Mai 2006
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Berserker
Berserker

Registriert seit: 15. Dez 2002
Ort: Chemnitz
165 Beiträge
 
Delphi 6 Professional
 
#1

Fremdes Datenformat einfach lesen in Delphi

  Alt 16. Mai 2006, 00:51
Datenbank: APDATA • Version: ... • Zugriff über: muss entwickelt werden
Hallo.

Es geht um folgendes, Ich möchte ein Datenformat von einem Lieferanten in Delphi einlesen um es weiter zu verarbeiten.

Jedoch ist das echt komplex. Eine Dokumentation habe ich auch dafür. Gibt es Beispiele wie man solche Formate in Delphi einlesen kann?

MfG, Ronny
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#2

Re: Fremdes Datenformat einfach lesen in Delphi

  Alt 16. Mai 2006, 01:19
Hi,

schreib n Parser. Nimm die Daten auseinander und lese sie in deine eigene Datenbank ein. So wuerd ich es machen!

Vlt. hilft dir ja Delphi-Referenz durchsuchenDelimiter das ist das Trennzeichen zwischen jedem Feld das du pro Datensatz in deiner uebergebenen (exportierten) Datei hast!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: Fremdes Datenformat einfach lesen in Delphi

  Alt 16. Mai 2006, 01:38
Hoffentlich glaubst Du nicht, daß es für sowas etwas komplett fertiges gibt. Da ist echte Handarbeit gefragt. Jo Parser. immer solche komischen Wörter Oh je, wenn das nicht als Textdatei vorliegt sondern codiert (integer, real usw.), dann gute Nacht. 8) Ansonsten zeilenweise einlesen und die Zeilen zerpflücken in appetitliche Felder für eigene DB. Und dann eben so :

Delphi-Quellcode:
DS.Insert;
// alle Felder zuweisen :
DS.FieldByName ('NAME').As<integer, Float usw.> := copy (zeile (523,50));
DS.Post;
Alternative : lange nach passender Komponente suchen, die eventuell geht.

P.S.: Was ist Apdata ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#4

Re: Fremdes Datenformat einfach lesen in Delphi

  Alt 16. Mai 2006, 01:58
Wenn du schon eine Dokumentation über das Format hast, was ist dann genau dein Problem, die Daten einzulesen? Ich nehme mal an, dass es sich um eine binäre Datei handelt, keine Textdatei. Dann steht doch in der Dokumentation genau drin, wie du die Daten zu interpretieren hast.
Also beschreibe mal genauer, was am Einlesen der Daten nicht funktioniert.
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#5

Re: Fremdes Datenformat einfach lesen in Delphi

  Alt 16. Mai 2006, 05:49
Zum Beispiel kannst du mit TFileStream wunderbar eine Datei Byteweise einlesen.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#6

Re: Fremdes Datenformat einfach lesen in Delphi

  Alt 16. Mai 2006, 08:23
Zitat von jim_raynor:
Zum Beispiel kannst du mit TFileStream wunderbar eine Datei Byteweise einlesen.
Muss nicht mal Byteweise sein...

Wenn du das Format kennst und es sich um ein konstantes Binärformat handelt, sollte das einfach per record gehen(bisher noch nie gemacht; nur davon gelesen):
Delphi-Quellcode:
TDaten = record // oder packed record --> siehe Dokumentation
  // hier die Daten in der Reihenfolge, in der sie in der Dokumentation stehen
end;

procedure LoadFromFile(AFileName: string);
begin
  // per Stream in record lesen...
end;
Je nachdem, wie kompliziert das Format ist, könnte es sein, dass du
a) Variante records brauchst
b) an den Einstellungen was ändern musst(Byte-Align oder sowas)
c) doch Byteweise lesen musst, weil die Datensätze unterschiedlich lang sind und du auch nicht variante records nehmen kannst
d) doch n Parser schreiben musst, weil es Textdateien sind

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#7

Re: Fremdes Datenformat einfach lesen in Delphi

  Alt 16. Mai 2006, 08:38
Zitat von r2c2:
a) Variante records brauchst
Es gibt die Möglich mit "file of" zu arbeiten. Stichworte sind da Hier im Forum suchenAssign, Hier im Forum suchenRewrite, Hier im Forum suchenWrite. Allerdings funktioniert das nicht mit varianten Records, sondern nur mit festen. Zudem dürfen keine AnsiStrings (Shortstrings ala String[20] sind erlaubt) und keine dynamischen Arrays verwendet werden. Aber wie schon gesagt, hängt es stark vom Dateiformat ab, welche Variante denn nun am optimalsten ist.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: Fremdes Datenformat einfach lesen in Delphi

  Alt 16. Mai 2006, 08:41
Zitat von Oxmyx:
..Ich nehme mal an, dass es sich um eine binäre Datei handelt, keine Textdatei. Dann steht doch in der Dokumentation genau drin, wie du die Daten zu interpretieren hast...
Binärdatei für Import/Exportzwecke wäre zumindest sehr ungewöhnlich. Denn was ist ein integer ? 8 bit oder 16 Bit ? Hat Delphi überhaupt einen mit dem Erstellungsprogramm der Daten 1:1 kompatiblen Datentyp ? Wie ist ein Aufzählungstyp in Cobol etc. aufgebaut ? Arrays, Records, Sets ?? Selbst wenn es ein Delphi-Programm wäre, welches die Daten gespeichert hat : ist vielleicht Compilerschalter (*$Xy+*) gesetzt ? Wer bietet mehr ? Allerdings gibt es auf jeden Fall Mittel und Wege die Daten zu kriegen, eventuell so, wie es mir schon mal passiert war : einziges Speichermedium zum Datenaustausch : 8 Zoll Disketten (kein Witz !), unbekanntes Betriebssystem, keinerlei Daten-Dokumentation. Unser Glück war, daß ein serieller Drucker angeschlossen war. Auch ohne jede Information darüber. Typ noch nie von gehört. Dieser wurde kurzerhand gegen einen PC ausgetauscht. Dann mußte die Baudrate noch durch bloßes testen herausgefunden werden. Alleine die serielle Datenübertragung dauerte Tage. Allerdings fältt mir doch noch ein Tool ein, was so was ähnliches etwas vereinfacht : "Monarch". --> Google. Sogar wenn eine Textdatei vorliegt, wovon ich nach wie vor ausgehe : Selbst dann dürfte StringReplace gefordert sein. Achtung vor CSV und Umlauten ! Tausender-Trennzeichen oder Decimalseparator.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: Fremdes Datenformat einfach lesen in Delphi

  Alt 16. Mai 2006, 08:46
Zitat von Berserker:
Hallo.

Es geht um folgendes, Ich möchte ein Datenformat von einem Lieferanten in Delphi einlesen um es weiter zu verarbeiten.
Vielleicht postest Du mal ein Stück der Datei...

Frank
  Mit Zitat antworten Zitat
Benutzerbild von Berserker
Berserker

Registriert seit: 15. Dez 2002
Ort: Chemnitz
165 Beiträge
 
Delphi 6 Professional
 
#10

Re: Fremdes Datenformat einfach lesen in Delphi

  Alt 16. Mai 2006, 09:46
Also es handelt sich bei der Datei um ein reines Textfile.

Ich würde es gerne hiermit versuchen.
Jedoch weis ich nicht ob dies auch mit Textdateien möglich ist.

Delphi-Quellcode:
TDaten = record // oder packed record --> siehe Dokumentation
  // hier die Daten in der Reihenfolge, in der sie in der Dokumentation stehen
end;

procedure LoadFromFile(AFileName: string);
begin
  // per Stream in record lesen...
end;
Hier ein kleiner Auszug aus dem File:

Delphi-Quellcode:
00K
01ADR_APO
02UPD
0320060515
0420060501
05ABDATA DATEN-SERVICE
06Adressen
071001
0815
00F
0101
02Key_ADR
031
040
05V
065
07NU1
00F
0102
02Firmenname
030
040
05V
0640
07AN1
MfG, Ronny
  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 02:53 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