AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String Grid speichern nur mit Fehler

Ein Thema von IronBytes · begonnen am 13. Dez 2023 · letzter Beitrag vom 23. Dez 2023
Antwort Antwort
Rolf Frei

Registriert seit: 19. Jun 2006
655 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: String Grid speichern nur mit Fehler

  Alt 20. Dez 2023, 12:28
Für ihn ist jede Gridzelle ein Datensatz, was natürlich Quatsch ist. Sein Grid hat 35'000 Zellen (500 Zeilen X 70 Spalten).
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: String Grid speichern nur mit Fehler

  Alt 20. Dez 2023, 13:29
Das TStringGrid ist dann intern auch mehrere StringListen, also pro Zeile eine TStringList und je Column Cell ein String.

Auch wenn es hier zum Glück "aktuell" geht, so ist es mit mehreren "Zeilen" je Cell (ListenZeile) eher als problematisch anzusehen.

Hier gleich mal ein gutes Beispiel, dass der Unterschied zwischen Daten-Komponente und GUI-Komponente schnell relevant sein kann.
Also TMemo (Memo.Lines = TMemoStrings) versus TStringList :

* das Memo speichert eigentlich alles in einem Stream ... also quasi in .Text, was "ein" String ist
* übergibt man einem Lines[i] einen mehrzeiligen String, dann
* * wird das in mehrere Zeilen aufgetrennt (nachfolgende Zeilen verschieben sich)
* * man muß aufpassen welche Zeilenumbrüche man benutzt, denn #13#10, #10 und #13, aka CRLF, LF und CR, werden vom Memo unterschiedlich behandelt
* * ändert man eine Line (egal ob mehrzeilig oder nicht), wird der komplette Stream und womöglich auch die ganze Speicherverwaltung umgeschrieben, wenn sich der gesamte Stream/String sich ändert
* * und bei vielen Zeilen / größeren Änderungen wird das TMemo extrem unperformant

* bei der TStringList dagegen ist/bleibt jede Line ein eigener String, auch wenn Mehrzeiliges zugewiesen wird.
* aber beim Zugriff .Text wird dann alles wieder zu einem String und die Lines trennen sich auf, vor allem auch beim SaveToFile/LoadFromFile
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (20. Dez 2023 um 13:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
717 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: String Grid speichern nur mit Fehler

  Alt 21. Dez 2023, 10:36
Für ihn ist jede Gridzelle ein Datensatz, was natürlich Quatsch ist. Sein Grid hat 35'000 Zellen (500 Zeilen X 70 Spalten).
Jetzt verstehe ich.
Es würde sich trotzdem lohnen auf eine Memorytable / ClientDataset. Schon alleine der 70 Spalten wegen die aktuelle alle mit einem Index angesprochen werden.
Da mal was hinzuzufügen oder zu entfernen macht keinen spass.
Außerdem sind richtige Datentypen viel schöner als alles in Strings und dauernd zu konvertieren.
Und wenn man mal suchen oder filtern muss, wozu soll man sich die Mühe machen um alles selber zu implementieren?
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
IronBytes

Registriert seit: 13. Dez 2023
Ort: bei Sigmaringen
9 Beiträge
 
Delphi XE8 Professional
 
#4

AW: String Grid speichern nur mit Fehler

  Alt 23. Dez 2023, 19:01
Hallo Jungs

Erst einmal vielen lieben Dank für Eure Hilfestellungen. Wie ich bereits geschrieben habe ist das was ich gemacht habe nicht zur Nachahmung gedacht gewesen.
Meine Idee war einfach ein bischen das Gehirn in Wallung zu bringen. Das das was ich gemacht habe schon beim programmieren mich selbst zum zweifeln gebracht hat lass ich mal außen vor.

Meine Maske ist im Anhang:
Unsere Maske in der Firma mit Access sieht ähnlich aus jedoch nur mit einem Hubwerk (Lauf-Katze). Etwa 5 % der Anlagen habe aber zwei oder mehr "Katzen".
Mein Nachbar ist von Beruf Programmierer und hatte auch einen anderen Ansatz. Für mich jedoch wichtig war das ich den Code möglichst alleine erstellt bekomme. Was Gott sei Dank auch gelang.
Der Code ist allerdings sehr sehr schlecht, was ein weiterführen unsinig macht. Aber es geht. Mich hat es gefreut das ich es hinbekommen habe trotz meines Stroke vor etwa vier Jahren.

Nun jedoch nochmal den Nachtrag : Es sind 500 Datensätze mit maximal 70 Einträge. Dies ist nicht ungewöhnlich viel. Eine Firma die ich viel betreue hat knapp über 300 Krananlagen.
Eine Firma wo ich immer mal wieder arbeite hat über 1400 Krananlagen. Also die Zahl von 500 ist nicht weit hergeholt.


Jedoch habe ich nun eine Frage an Euch :

1. Kann ich mit Delphi XE8 Datenbankanwendungen schreiben ohne das ich die Datenbank selbst auf dem Rechner installiert habe (Access ....)?
2. Kann ich diese Datenbank auch auf einem Handy oder Tablet benutzen ?
3. Kann man mit XE8 auch Handy oder Tablet Anwendungen schreiben?
4. Ist es mit der derzeit Kostenlosen und freien Version Möglich so etwas zu machen (Datenbank,Handy und Tablet Version) ?


Nun wünsche ich Euch ein schönes Weihnachtsfest und ein paar schöne Tage mit Euren Liebsten.

Grüße Thomas


PS: Danke für die Hilfe und auch der Kritik
Angehängte Grafiken
Dateityp: jpg INV.jpg (308,6 KB, 24x aufgerufen)
Thomas S.

Geändert von IronBytes (23. Dez 2023 um 19:08 Uhr) Grund: Immer wieder Fehler drin
  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 12:54 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