AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Hat Jemand eine Ahnung wie ich diese Datei in ein Stringgrid bekomme.
Thema durchsuchen
Ansicht
Themen-Optionen

Hat Jemand eine Ahnung wie ich diese Datei in ein Stringgrid bekomme.

Ein Thema von verkouter · begonnen am 1. Apr 2018 · letzter Beitrag vom 2. Apr 2018
Antwort Antwort
verkouter

Registriert seit: 29. Dez 2004
64 Beiträge
 
Delphi 2010 Architect
 
#1

AW: Hat Jemand eine Ahnung wie ich diese Datei in ein Stringgrid bekomme.

  Alt 1. Apr 2018, 19:43
Würde es gern ohne zusätzliche Komponente machen. Was aber nicht, wie ich das aufsplitten soll.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Hat Jemand eine Ahnung wie ich diese Datei in ein Stringgrid bekomme.

  Alt 1. Apr 2018, 19:52
Delphi.Narium schrieb doch eine Anleitung wie Du die Datensätze ohne Zusatz Komponente reinladen kannst, wofür ich mal eben Applaus gebe
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Hat Jemand eine Ahnung wie ich diese Datei in ein Stringgrid bekomme.

  Alt 1. Apr 2018, 20:04
Hallo
zum Aufsplitten nehme ich immer eine zweite TStringList.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Hat Jemand eine Ahnung wie ich diese Datei in ein Stringgrid bekomme.

  Alt 1. Apr 2018, 20:13
Ich würd's eher mit dem vielfachen von 59 Bytes puffern und intern splitten, geht schneller als dauernd BlockRead() anzuwenden, oder lieg ich wieder falsch?
[EDIT]
Abzüglich der ersten 193 Bytes natürlich, also ab File-Offset 193.
Menno, BlockRead() kann man ja so nutzen, ich hatte TStream im Kopf als Lese-Methode, also beides geht will ich damit sagen, sorry!
[/EDIT]
Gruß vom KodeZwerg

Geändert von KodeZwerg ( 1. Apr 2018 um 20:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#5

AW: Hat Jemand eine Ahnung wie ich diese Datei in ein Stringgrid bekomme.

  Alt 1. Apr 2018, 20:51
TDBGrid + ClientDataSet/MemoryDataSet und z.B. https://www.delphipraxis.net/164041-...ntdataset.html
Aber da es eh keine CSV ist, bleibt es beim DBGrid
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.559 Beiträge
 
Delphi 7 Professional
 
#6

AW: Hat Jemand eine Ahnung wie ich diese Datei in ein Stringgrid bekomme.

  Alt 1. Apr 2018, 20:54
DBase kann man übrigens auch über ODBC lesen.

Dazu reicht die Nutzung der ADO-Komponenten. Damit kann man dann auch per SQL auf die Daten zugreifen. (Braucht keine BDE und keine weiteren Komponenten isntallieren.)

Für professionelle Software würd' ich mir jedenfalls kein "Hilfsmittel" basteln, das genau mit dieser einen Form von DBase-Dateien zurecht kommt. Der Nächste, der dann mit DBase kommt und nur die Felder in 'ner anderen Reihenfolge liefert, bekommt dann auch eine eigene Implementierung ...?

Das ist doch eher etwas "ungeeignet".
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Hat Jemand eine Ahnung wie ich diese Datei in ein Stringgrid bekomme.

  Alt 1. Apr 2018, 22:01
Vielleicht wäre es ganz hilfreich, erst einmal zu wissen welche Dateiformate für die Eingabe vorliegen.
Der nächste Schritt wäre, ein für die weitere Verarbeitung geeignetes Format zu definieren, in das alle Deine Eingaben überführt werden.
Da in der Beispieldatei etwas mehr als 2600 Einträge sind und es wohl mehrere EingabeDateien gibt, könnte man u.U an eine DB denken auch wenn das bei einer so einfachen Datenstruktur nach Overkill aussieht. Allerdings ist die Suche nach einem Wertepaar, dann relativ einfach zu lösen.
Also mach Dir erst einmal ein paar Gedanken zu Deinem Konzept.

Gruß
k-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.559 Beiträge
 
Delphi 7 Professional
 
#8

AW: Hat Jemand eine Ahnung wie ich diese Datei in ein Stringgrid bekomme.

  Alt 1. Apr 2018, 22:36
Meiner Meinung nach kann man sowas nur sinnvoll und performant machen, wenn man eine "datenbankähnliche" Struktur nimmt.

Also entweder man packt die Dateien in eine Datenbank (wenn auch nur für die Zeit der Verarbeitung) oder nutzt direkt Komponenten, die mit dem Dateiformat umgehen können.

ClientDataSet, die ADO-Komponenten, bei älteren Delphis (wie's im Profil steht Delphi 6) gerne auch noch die BDE. Dort kann man auch Strukturdateien definieren, die den Aufbau von Textdateien enthalten. Mit der Kombination Textdatei und Strukturdatei kann man dann auf die Textdateien wie auf Datenbanktabellen zugreifen.

Man kann damit dann auch mit einfachem SQL auf Textdateien zugreifen.

So eine Strukturdatei kann so aussehen (Beispiel für eine alte Bankleitzahlendatei):
Code:
[BLZ0509PC]
FILETYPE = FIXED
CHARSET = china
DELIMITER =
SEPARATOR =
Field1  = BANKLEITZAHL,     CHAR, 8,0, 0
Field2  = EIGENEBANKLEITZAHL,CHAR, 1,0, 8
Field3  = LOESCHBANKLEITZAHL,CHAR, 8,0, 9
Field4  = LBZGIROKONTO,     CHAR, 1,0, 17
Field5  = LOESCHDATUM,      CHAR, 4,0, 18
Field6  = NACHFOLGEINSTITUT, CHAR, 5,0, 22
Field7  = NAMEKURZ,         CHAR, 58,0, 27
Field8  = KURZBEZEICHNUNG,  CHAR, 20,0, 85
Field9  = POSTLEITZAHL,     CHAR, 5,0,105
FIELD10 = ORT,              CHAR, 29,0,110
FIELD11 = BTX_EZU,          CHAR, 27,0,139
FIELD12 = PAN,              CHAR, 5,0,166
FIELD13 = VEROEFFENTLICHT,  CHAR, 1,0,171
FIELD14 = BIC,              CHAR, 9,0,172
FIELD15 = KENNZIFFER,       CHAR, 2,0,181
FIELD16 = LFDNR,            CHAR, 5,0,183
Im Programm könnte man hiermit dann z. B. per FieldByName('FIELD10').AsString auf den Ort zugreifen.

Aber 'ne eigene Schnittstelle für DBase-Dateien programmieren, würd' ich jetzt nicht unbedingt empfehlen. Wenn aber unbedingt doch, dann hier eine passende Beschreibung dessen, was man dann so vor sich hat: Data File Header Structure for the dBASE Version 7 Table File
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.559 Beiträge
 
Delphi 7 Professional
 
#9

AW: Hat Jemand eine Ahnung wie ich diese Datei in ein Stringgrid bekomme.

  Alt 1. Apr 2018, 20:01
Ich habe Dir sehr ausführlich beschrieben, wie die Daten aufzuteilen sind.

Welche Bytes am Anfang zu überlesen sind, welches am Ende zu ignorieren ist und wie die einzelen Datensätze "dazwischen" aufzuteilen sind.

BlockRead könnte da eine Methode sein, die beim Lesen der Daten hilft.
  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 02:50 Uhr.
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