AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

String Grid speichern nur mit Fehler

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

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

AW: String Grid speichern nur mit Fehler

  Alt 15. Dez 2023, 18:13
Hallo

Entschuldigung das ich mich erst jetzt melde. Liege mit Corona flach und kann mich derzeit nicht immer aufraffen am Project weiter zu wurschteln.
Ich benutze die Stringgrid (die nicht sichtbar ist) zum Datenspeichern. Bisher hatte ich nie Probleme da ich ja keine Memofelder reinbastelte. Das Project dient
nur einem, mir selbst. Es ist ohne weiterem Nutzen. Eine Datenbank wollte ich nicht, was vermutlich einfacher geht (Zumindest aus meiner Erinnerung heraus), aber was
auch schlechte Eigenschaften hervorruft wenn jene auch mal kaputt geht. Wir arbeiten hauptsächlich mit Datenbanken berufsbezogen, und es kommt nicht selten vor das es eine verhacktstückelt (Access).
Ein reines Textfile kann ich händisch wieder reparieren. Wenn ich das nun richtig verstehe, geht es so einfach nicht.
Ich werde jetzt mal versuchen jeden Datensatz mit einer Soderzeichencombi zu trennen, und hoffen das ich es wieder zusammenbekomme.

Grüße Thomas
Thomas S.
  Mit Zitat antworten Zitat
IronBytes

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

AW: String Grid speichern nur mit Fehler

  Alt 15. Dez 2023, 18:19
Anbei mal die Oberfläche
Angehängte Grafiken
Dateityp: jpg INV.jpg (308,6 KB, 51x aufgerufen)
Thomas S.
  Mit Zitat antworten Zitat
IronBytes

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

AW: String Grid speichern nur mit Fehler

  Alt 15. Dez 2023, 18:24
Ich versuche nun immer zwischen den Feldern ein Absatzzeichen einzufügen, um es danach wieder besser aufzusplitten.



Delphi-Quellcode:
var
  F: TStringList;
  x1,y1: Integer;
begin

  F := TStringList.Create;
  SaveDialog1.Filter := 'Datenbank (*.dbs)|*.DBS';
  if savedialog1.Execute then begin;

  try
    //F.Add(IntToStr(StringGrid1.RowCount));
    //F.Add(IntToStr(StringGrid1.ColCount));
    for y1 := 1 to 500 do begin;

    for x1 := 1 to 70 do begin;

      F.Add(StringGrid1.cells[x1,y1]);
      F.Add('#Q#Q');
  end;
  end;



    F.SaveToFile(savedialog1.FileName+'.dbs');
  finally
    F.Free;
  end;
  end;
  end;
Thomas S.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: String Grid speichern nur mit Fehler

  Alt 15. Dez 2023, 18:52
PS, da es wie eine Datenbank klingt (dbs),
warum dann nicht "wirklich" Eine benutzen?

* z.B. SQLite via TSQLQuery bzw. TFDQuery

* oder TLocalSQL oder TDataSetProvider gegen eine Objekt/Record-Liste

* oder einfach TClientDataSet bzw. TSimpleDataSet (die kennen auch ein SaveToFile/LoadFromFile)


da dran dann normale TDBEdit, TDBComboBox, TDBMemo oder auch ein TDBGrid usw.




Und warum überhaupt eine unsichtbare visuelle Komponente, um interne Daten zu speichern?

Nicht nur die unnötig komplizierte/datenhungrige/langsame Datenhaltung,
sondern dann auch nochmal sinnlos manuell das alles mit den Eingabe-Controls (Edits) zu synchronisieren.

Für sowas nimmt man eben möglivhst passende Datenhaltungs-Komponenten,
oder von mit aus auch eine ObjektListe oder verschachtelte StringListen
oder z.B. eine TMemIniFile (Row-Index = Section-Name und Col-Index/Name = Value-Name)
oder XML, JSON usw.
oder ...
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (15. Dez 2023 um 19:10 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#5

AW: String Grid speichern nur mit Fehler

  Alt 15. Dez 2023, 18:56
Zitat von IronBytes:
und es kommt nicht selten vor das es eine verhacktstückelt (Access)
Das betrifft aber nur Access und keine Datenbanken. Sowas ist mir noch nie vorgekommen, weder Oracle, noch PostGres, Ingres, MySQL, MSSQL, FireBird, Interbase, selbst dBase und Paradox sind da verlässlicher.

Ansonsten könnte man ja auch noch 'nen ClientDataSet nutzen, kann damit auch alle datensensitiven Komponenten nutzten. Speichern kann man mit ClientDataSet.SaveToFile und laden mit ClientDataSet.LoadFromFile.

https://www.tek-tips.com/viewthread.cfm?qid=1523881

Es geht also auch ohne Datenbank deutlich einfacher als mit 'nem unsichtbaren StringGrid.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.437 Beiträge
 
Delphi 12 Athens
 
#6

AW: String Grid speichern nur mit Fehler

  Alt 16. Dez 2023, 06:30
Moin...
...ein paar Fragen:

1.
Zitat:
Wir arbeiten hauptsächlich mit Datenbanken berufsbezogen
Wer ist wir? Die Firma, 20 Entwickler?
2.
Zitat:
Das Project dient nur einem, mir selbst
Machst du Programmieren hauptberuflich in der Firma? (XE8)
3.
Zitat:
Ein reines Textfile kann ich händisch wieder reparieren
...was ist wenn man nichts reparieren muß? Vernünftige Datenbank oder XML?
4.
Zitat:
Anbei mal die Oberfläche
...die Oberfläche repräsentiert EINEN Datensatz? Was ist, wenn zu den Katzen ein Tiger (Spaß ) hinzukommt?
5.
Zitat:
Ich benutze die Stringgrid (die nicht sichtbar ist) zum Datenspeichern
Willst du über den Tellerand schauen und es richtig lernen? Hast du Zeit und den Willen dazu?


PS:
Zitat:
und es kommt nicht selten vor das es eine verhacktstückelt (Access)
...Access ist ja auch keinen Datenbank.
  Mit Zitat antworten Zitat
IronBytes

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

AW: String Grid speichern nur mit Fehler

  Alt 17. Dez 2023, 15:23
Hallo

Bin ja jetzt vor Gericht

1.
Zitat:
Wir arbeiten hauptsächlich mit Datenbanken berufsbezogen
Wer ist wir? Die Firma, 20 Entwickler?

Es gibt keine Entwickler sondern nur Facharbeiter für Fördertechnik (Elektriker,Mechaniker,Büroleute (Keine Programierer))

2.
Zitat:
Das Project dient nur einem, mir selbst
Machst du Programmieren hauptberuflich in der Firma? (XE8)

Nur für mich, früher mehr für andere aber immer nur so.

3.
Zitat:
Ein reines Textfile kann ich händisch wieder reparieren
...was ist wenn man nichts reparieren muß? Vernünftige Datenbank oder XML?

Wie gesagt ich wollte es einfach mit einem Textfile.

4.
Zitat:
Anbei mal die Oberfläche
...die Oberfläche repräsentiert EINEN Datensatz? Was ist, wenn zu den Katzen ein Tiger (Spaß ) hinzukommt?

Man spricht auch von einer sogenanten Laufkatze. Sie fährt an der Kranbrücke und beinhaltet das Hubwerk oder Hebezeug.

5.
Zitat:
Ich benutze die Stringgrid (die nicht sichtbar ist) zum Datenspeichern
Willst du über den Tellerand schauen und es richtig lernen? Hast du Zeit und den Willen dazu?


Ich möchte nur dieses kleine Projekt für mich machen und es dieses Jahr abschließen. Es hat keinen Nutzen sondern dient nur zum Auffrischen meines Kopfes. Besser geht es immer

PS:
Zitat:
und es kommt nicht selten vor das es eine verhacktstückelt (Access)
Thomas S.
  Mit Zitat antworten Zitat
IronBytes

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

AW: String Grid speichern nur mit Fehler

  Alt 17. Dez 2023, 19:00
Hallo Zusammen

Weis jemand wie ich die Strings wieder untereinander ins Memofeld bekomme ? Danke im Vorfeld.
Einzelne Zeilen gehen gut. nur das aneinanderreihen von Memozeilen geht warum auch immer nicht.

Grüße von der schwäbischen Alb.

Delphi-Quellcode:
procedure TForm2.BitBtn6Click(Sender: TObject);

 var
  F: TStringList;
  x1,y1,a,ie: Integer;
  strV: string;


begin
OpenDialog1.Filter := 'Datenbank (*.dbs)|*.DBS';
if Opendialog1.Execute then begin;
  strV:='';
  a:=-1;
  F := TStringList.Create;
  try
    F.LoadFromFile(opendialog1.FileName);
    for y1 := 1 to 499 do begin;

    for x1 := 1 to 70 do begin;
    a:=a+1;
    edit28.text:=inttostr(a);

repeat
     strV:=strV+F.Strings[a];

     a:=a+1;
until F.Strings[a]='#Q#Q';


stringgrid1.cells[x1,y1]:= strV ;
 strV:='';
        end;


       end;
  finally
    F.Free;
     end;
   end;
 end;
Thomas S.
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:55 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