Dynamisches Array oder StringGrid

Für Fragen von Einsteigern und Programmieranfängern...
Benutzeravatar
BoraBora
Beiträge: 29
Registriert: So 11. Apr 2021, 16:00
OS, Lazarus, FPC: Linux Mint, Win 10, Android
CPU-Target: xxBit

Re: Dynamisches Array oder StringGrid

Beitrag von BoraBora »

Zur allergrössten Not mit 2 Stringgrids arbeiten.
Beide mit Loadfromcsvfile füllen und dann den Inhalt des 2. Grids in das
1. Grid kopieren/hinzufügen.

BB

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

Re: Dynamisches Array oder StringGrid

Beitrag von theo »

BoraBora hat geschrieben:
Mi 29. Jun 2022, 14:42
Zur allergrössten Not mit 2 Stringgrids arbeiten.
Beide mit Loadfromcsvfile füllen und dann den Inhalt des 2. Grids in das
1. Grid kopieren/hinzufügen.
Nach allen Non-Gui-Optionen, die hier beschreiben wurden, erstaunt mich diese Antwort jetzt schon ein wenig.

Benutzeravatar
BoraBora
Beiträge: 29
Registriert: So 11. Apr 2021, 16:00
OS, Lazarus, FPC: Linux Mint, Win 10, Android
CPU-Target: xxBit

Re: Dynamisches Array oder StringGrid

Beitrag von BoraBora »

"zur allergrössten Not" = fast and dirty.
Dass das weder elegant, noch im Sinne von NON-GUI ist steht auf einem anderen Blatt.

BB

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

Re: Dynamisches Array oder StringGrid

Beitrag von wp_xyz »

af0815 hat geschrieben:
Mi 29. Jun 2022, 10:41
Der Grund, das Paket ist im fpc enthalten und zwar unter fpcsrc/packages/fcl-base/src/csvdocument.pas .

Der Artikel in der Wiki https://wiki.freepascal.org/CsvDocument dürfte nicht mehr ganz taufrisch sein, da dort als Ort noch das Lazarus-CCR angegeben ist und noch nicht, das es auch im fpc enthalten ist.
Habe gerade den wiki-Artikel aktualisiert und den Hinweis auf CCR deutlich zurückgesetzt (weglassen kann man ihn meiner Meinung nach nicht, weil manche Linux-Leute immer noch mit einem FPC aus der Zeit vor v3 unterwegs sind). Habe mir auch erlaubt, theos Beispiel in leicht modifizierter Form einzubauen, denn das im Artikel gezeigte Code-Beispiel ist zwar sehr gut, aber für den Normal-User abschreckend.

Der Disclaimer, dass der Artikel "out-dated" sei, wurde entfernt.

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

Re: Dynamisches Array oder StringGrid

Beitrag von wp_xyz »

theo hat geschrieben:
Di 28. Jun 2022, 14:19
wp_xyz hat geschrieben:
Di 28. Jun 2022, 13:35
Absolut! Aber auch TCSVDocument wäre mir zuviel Aufwand und Overhead, solange die Datei keine problematischen Fälle wie Zeilenumbruch oder Anführungs- oder Spaltentrennzeichen im Zell-Text o.ä. enthält. Für Quick-and-dirty reichen ein paar Zeilen mit TStringList. Ungetestet:
Das sehe ich nicht so. TCSVDocument ist eine saubere Lösung ohne wenn-und-aber, mit einem sehr vertretbaren Overhead.
Was dabei der "Aufwand" sein soll, erschliesst sich mir nicht. Einfacher geht's doch nicht?
Man muss heute auf einem PC ja nun wirklich nicht jedes Byte mehr einzeln zählen, sonst kommt man nirgends hin.
Auf gewissen Microcontrollern mag das noch sein.
Das kann schon sein. Aber wieso soll ich mir zum Lesen einer Wald-und-Wiesen-Zahlenkolonne über 1000 zusätzliche Zeilen Code für alle möglichen Sonderfälle und eine Abhängigkeit von einem Autor, der nicht mehr erreichbar ist (*), mit ins Projekt ziehen, wenn es mit einer einfachen StringList, die wohl in jedem Projekt vorkommt, bei kaum höherem Aufwand auch geht? Wenn jemand mit einer StringList umgehen kann, wird sich die Frage, warum das erste Dokument beim Einlesen eines zweiten überschrieben wird, gar nicht stellen. Bei einer Black-Box-Lösung a la CSVDocument schon eher.

(*) Ich gebe zu, dass CSVDocument jetzt nicht gerade extrem komplizierten Code enthält, so dass wahrscheinlich jeder FPC-Entwickler Support leisten kann. Das Problem ist nur: Fühlt sich jemand zuständig? Wenn ich die vielen Leichen in FPC/Lazarus sehe, erscheint mir diese Frage berechtigt.

Benutzeravatar
stoffel_hessen
Beiträge: 66
Registriert: Sa 18. Jun 2022, 12:27
OS, Lazarus, FPC: Windows 11 (Version 2.2.2, FPC 3.2.2)
CPU-Target: x86 64Bit
Wohnort: Riedstadt

Re: Dynamisches Array oder StringGrid

Beitrag von stoffel_hessen »

wp_xyz hat geschrieben:
Mi 29. Jun 2022, 17:06
Wenn jemand mit einer StringList umgehen kann, wird sich die Frage, warum das erste Dokument beim Einlesen eines zweiten überschrieben wird, gar nicht stellen. Bei einer Black-Box-Lösung a la CSVDocument schon eher.
Ich bin kein gelernter Entwickler und programmiere auch nur gelegentlich, habe mir alles selbst angeeignet.
Ich habe es nun so gelöst, auch wenn ihr mich hierfür wahrscheinlich steinigt (kleine Steine, goße Steine, Kieselsteine, ist hier Weibsvolk anwesend? :lol: )

Code: Alles auswählen

Files_zusammenfuehren := TStringList.Create;
Files_zusammenfuehren.LoadFromFile(ExtractFilePath(ParamStr( 0 )) + '\' + Datei1);
Zwischenspeicher_Load := Files_zusammenfuehren.Text;
Files_zusammenfuehren.LoadFromFile(ExtractFilePath(ParamStr( 0 )) + '\' + Datei2);
Files_zusammenfuehren.text := Files_zusammenfuehren.Text + Zwischenspeicher_Load;
Files_zusammenfuehren.SaveToFile(GetTempDir + 'Datei1_und_Datei2.txt');
Files_zusammenfuehren.Free;
SG_VerfuegbareCorePorts.LoadFromCSVFile(GetTempDir + 'Datei1_und_Datei2.txt', ';');
DeleteFile (GetTempDir + 'Datei1_und_Datei2.txt');
Für mich hat StringGrid, den Vorteil, das ich jederzeit schauen kann, welche Werte in den Tabellen stehen, da das Debuggen auf StringGrid.Cells[x,y] ja nicht so einfach funktioniert wie in Delphi.
Außerdem muss ich dann das Ganze Projekt umbauen, das werde ich mir anschauen, wenn ich mal viel Zeit und Muse habe.
Gruß Christopher

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

Re: Dynamisches Array oder StringGrid

Beitrag von theo »

Ach komm, wp_xyz, jetzt wird es aber langsam zu so einem Alphatierchen Ding. :lol:
Ich weiss, dass du weisst, dass ich recht habe. :mrgreen:

Antworten