GELÖST : Textfile in Memo laden und die Zeile Wort für Wort auslesen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Bernie110
Beiträge: 140
Registriert: Mo 10. Feb 2020, 17:43

Re: GELÖST : Textfile in Memo laden und die Zeile Wort für Wort auslesen

Beitrag von Bernie110 »

wp_xyz hat geschrieben: Fr 19. Jul 2024, 17:15 Welcher Barcode-Type ist das eigentlich?
Es ist ein Code 128 Barcode.
Ich hab das schon vorab berechnet. Daher ist es schon in der CSV enthalten.

Genau so ähnlich sieht mein Formular aus. Aber ich benutze nicht LazBarcodes- Der Barcode wird duch das Code128 Font angezeigt.
Ist alles scanbar.
Und darum geht es .. Ich scanne einen Fremd-Barcode an und die CSV übersetzt es in unsere Artikeldaten nebst Barcodes
Im Anschluss soll dann eben unser Barcode Label rauskommen.
Aber so weit bin ich noch nicht :mrgreen:
Lg Bernie

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1207
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: GELÖST : Textfile in Memo laden und die Zeile Wort für Wort auslesen

Beitrag von kralle »

Moin,

wenn es Artikeldaten sind, warum legst Du diese Daten nicht in einer Datenbank ab. Wäre das nicht Zukunftssicherer?

Gruß Heiko
OS: MX Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

wp_xyz
Beiträge: 5191
Registriert: Fr 8. Apr 2011, 09:01

Re: GELÖST : Textfile in Memo laden und die Zeile Wort für Wort auslesen

Beitrag von wp_xyz »

Bernie110 hat geschrieben: Fr 19. Jul 2024, 22:27 Der Barcode wird duch das Code128 Font angezeigt.
OK, damit ist mir klar, warum du die UTF8-Zeichen am Beginn und Ende des Feldtextes brauchst.

Bernie110
Beiträge: 140
Registriert: Mo 10. Feb 2020, 17:43

Re: GELÖST : Textfile in Memo laden und die Zeile Wort für Wort auslesen

Beitrag von Bernie110 »

Mal ne andere lustige Frage in die Runde,

habe jetzt noch mal ein paar Datensätze der DSV Datei hinzugefügt.
Nun scheint er nicht mehr jeden Datensatz bzw jede Nr zu finden.
An was könnte das nun wieder liegen ?
Hab jetzt 7500 Zeilen mit fast 250.000 Zeichen in der CSV.
Ist das bereits zuviel ?
kralle hat geschrieben: Fr 19. Jul 2024, 22:35 Moin,

wenn es Artikeldaten sind, warum legst Du diese Daten nicht in einer Datenbank ab. Wäre das nicht Zukunftssicherer?
Da es sich lediglich um ein Übersetzungsprogramm handelt, wollte ich nicht gleich nen SQL Server aufsetzen.

Die Frage ist aber berechtigt insofern die Datei zu gross ist.. Keine Ahnung :D
Vll mach ichs dann doch besser mit ACCESS :D

Benutzeravatar
theo
Beiträge: 10922
Registriert: Mo 11. Sep 2006, 19:01

Re: GELÖST : Textfile in Memo laden und die Zeile Wort für Wort auslesen

Beitrag von theo »

Bernie110 hat geschrieben: Sa 20. Jul 2024, 13:21 habe jetzt noch mal ein paar Datensätze der DSV Datei hinzugefügt.
Nun scheint er nicht mehr jeden Datensatz bzw jede Nr zu finden.
An was könnte das nun wieder liegen ?
Hab jetzt 7500 Zeilen mit fast 250.000 Zeichen in der CSV.
Ist das bereits zuviel ?
Da hast du wohl irgendwas nicht-konformes drin. Ein falsches Leerzeichen, Anführungszeichen oder so.
Ohne die Datei zu sehen, kann man nicht viel sagen.

icho2099
Beiträge: 48
Registriert: Fr 21. Feb 2020, 19:17
OS, Lazarus, FPC: Win10/64
CPU-Target: 64 Bit
Wohnort: Osterholz-Scharmbeck

Re: GELÖST : Textfile in Memo laden und die Zeile Wort für Wort auslesen

Beitrag von icho2099 »

Vll mach ichs dann doch besser mit ACCESS :D
Nimm besser SQLite, das ist schnell und unkompliziert.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6849
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: GELÖST : Textfile in Memo laden und die Zeile Wort für Wort auslesen

Beitrag von af0815 »

Access solltest du vermeiden, außer du stehst auf Schmerzen.

7500 Zeilen sind nicht viel. Und 250 kZeichen locken auch keinen mehr hervor. Vor allen weil man heutzutage auch mit 64Bit arbeiten kann. Nur kann es Plattformen geben, wo es ab 32765 Zeilen schon Mal lustig werden kann, wenn intern ein Integer verwendet worden ist. Das ist bei dir nicht der Fall. Ich würde für jede Zeile Mal eine Plaubilitätsprüfung beim Einlesen machen, oft liegt im Ausgangsmaterial eine inkonsistent vor und die Daten sind korrupt. Im schlechtesten Fall bricht dort die Bearbeitung ab.

Das musst du sowieso machen, wenn du die Daten in eine DB bringst. SQLite ist da wirklich eine der einfachsten DB Systeme. Wenn du auf einem MS-Produkt bleiben willst, es gibt den MS-SQLServer auch in einer 'freien' Lite Version.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Bernie110
Beiträge: 140
Registriert: Mo 10. Feb 2020, 17:43

Re: GELÖST : Textfile in Memo laden und die Zeile Wort für Wort auslesen

Beitrag von Bernie110 »

theo hat geschrieben: Sa 20. Jul 2024, 13:25 Da hast du wohl irgendwas nicht-konformes drin. Ein falsches Leerzeichen, Anführungszeichen oder so.
Ohne die Datei zu sehen, kann man nicht viel sagen.
Naja Anführungszeichen habe ich natürlich in der Zeile drin. Die BarcodeNummer enhält alle erdenklichen Zeichen. Steht aber zwischen zwei ";"
Beispiel : ;Ì11670076"Î;

Was macht das hier : Idx := CSVDoc.IndexOfRow(Edit1.text, 0);
Durchsucht er mit dem EIntrag in Edit.text die gesamte Stringlist ?

Könnte man die Suche nicht nur auf den Anfang jeder Zeile beschränken ( bis zum ersten Semikolon )? Die Anfangszeichen bis zum ersten ";" bestehen nur aus Zahlen.
ALso so :
105174;11670467;Ì11670467;Î;ABU/V2A/125;STK

Ich will nur mittels dieser NR : 105174 den Zeilenindex finden und auslesen.


af0815 hat geschrieben: Sa 20. Jul 2024, 15:26 Access solltest du vermeiden, außer du stehst auf Schmerzen.
Was meinst du damit ? Ich meinte nicht per Lazerus auf die Access DB Daten zurückgreifen. ;) Wenn dann schon alles mit Access machen.

Benutzeravatar
theo
Beiträge: 10922
Registriert: Mo 11. Sep 2006, 19:01

Re: GELÖST : Textfile in Memo laden und die Zeile Wort für Wort auslesen

Beitrag von theo »

Bernie110 hat geschrieben: Sa 20. Jul 2024, 15:50 Naja Anführungszeichen habe ich natürlich in der Zeile drin. Die BarcodeNummer enhält alle erdenklichen Zeichen. Steht aber zwischen zwei ";"
Beispiel : ;Ì11670076"Î;
Das geht natürlich nicht. QuoteChar und Delimiter sind hier Steuerzeichen und anderweitig verboten.
Solche Zeichen musst du vorher entfernen/ersetzen.
Oder du setzt einen QuoteChar, welcher bestimmt nicht vorkommt.

Bernie110
Beiträge: 140
Registriert: Mo 10. Feb 2020, 17:43

Re: GELÖST : Textfile in Memo laden und die Zeile Wort für Wort auslesen

Beitrag von Bernie110 »

Ok, danke. Dann muss ich das mit dem Barcode wohl anders lösen ;)

Benutzeravatar
theo
Beiträge: 10922
Registriert: Mo 11. Sep 2006, 19:01

Re: GELÖST : Textfile in Memo laden und die Zeile Wort für Wort auslesen

Beitrag von theo »

Bernie110 hat geschrieben: Sa 20. Jul 2024, 19:11 Ok, danke. Dann muss ich das mit dem Barcode wohl anders lösen ;)
Naja, die CSV Inhalte werden ja nicht komplett beliebige Zeichen enthalten. Mindestens Space muss reserviert sein, sonst ist es ja gar nicht lesbar.

Man kann es schon mal so versuchen:

Code: Alles auswählen

    CSVDoc.Delimiter := ' ';
    CSVDoc.QuoteChar := #0;    

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 1207
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: GELÖST : Textfile in Memo laden und die Zeile Wort für Wort auslesen

Beitrag von kralle »

Moin,
Bernie110 hat geschrieben: Sa 20. Jul 2024, 19:11 Ok, danke. Dann muss ich das mit dem Barcode wohl anders lösen ;)
Ja, als Blob-Feld in einer Datenbank.
https://www.digitalocean.com/community/ ... u-18-04-de

Gruß Heiko
OS: MX Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6849
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: GELÖST : Textfile in Memo laden und die Zeile Wort für Wort auslesen

Beitrag von af0815 »

Du verwendest Code 128 und brauchst die UTF-8 Zeichen als Kennung für den Start und die Prüfsumme mit Stoppzeichen. In den Daten stört dich das, also beim Einlesen die Zeichen löschen und bei der Ausgabe wieder hinzufügen. Ich sehe da noch kein Problem, nur etwas Vorverarbeitung.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten