Einzelnen Beitrag anzeigen

Black07

Registriert seit: 10. Jun 2007
24 Beiträge
 
#1

Wie eine Stringgrid-Spalte in eine Zeile vom Memo schreiben?

  Alt 27. Jun 2007, 03:43
Hi


bin mit meinem Programm fast fertig nur stehe jetzt vor einem Problem bei dem ich hoffe ihr könnt mir weiterhelfen.


Zunächst zum Verständnis das Grundlegenste,

Habe einen Verwaltungprogramm geschrieben, das eine vorhandene Daten aus einer Textdatei zunächst in ein Memofeld einliest (das memo ist invisible) aus dem dann die enthaltenden Daten auf Editierfelder zum bearbeiten verteilt werden.


Das ist alles kein Problem nur beim Speicher stehe ich bei den Stringgrids vor einen für mich scheinbar unüberwindlichen Problem.



Die Stringgrids haben von mir statische 100 Zeilen und 1 oder 2 Spalten oncreate zugeteilt bekommen,
nun ist es aber so das meist nur die ersten Zeilen z.B. 5 Zeilen mit Text gefüllt sind.

Die Daten aus den einzelnen Zellem in der einen Stringgrids-Spalte soll in dem Speicher-Memo mir den anderen Daten as weiteren Editfeldern.
Das Memo soll am Ende wieder als eine *.TXT gespeichert werden, wobei jede Zeile zusammenhändende Daten enthält die durch einen Delimiter als Trennzeichen getrennt sind.


Etwa so

Zitat von Speicher-MEMO wie es ausehen soll:
.
.
{Zeile 12}Name=P777;Alpha_3
{Zeile 13}Bezeichnung=Datensatz1;Datensatz2;Datensatz;Dat ensatz4
.
.
.

Nur bekomme ich es einfach nicht hin,
zum einen das die Datensätze einfach wieder hinter einander durch einen Delimiter getrennt stehen und zum anderen
da die leeren Zellen(MAX 100) aus den Stringgrid-Spalten mit eingefügt werden, und zwar als die komische Balken |||; und zwar so.

Zitat von Speicher-MEMO wie es ausehen soll:
...
...
{Zeile 12}Name=P777;Alpha_3
{Zeile 13}Bezeichnung=Datensatz1;
{Zeile 14}Datensatz2;
{Zeile 15}Datensatz4;
{Zeile 16}|||;
{Zeile 17}|||;
{Zeile 18}|||
...



Delphi-Quellcode:
...
...
...

if stgridWegedaten.Cells[0,1]<>'then
          begin
            c:=';';
            F := TStringList.Create ;
            try
            F.Add(IntToStr(stgridWegedaten.RowCount));
            F.Add(IntToStr(stgridWegedaten.ColCount));
            for I := 0 to (stgridWegedaten.RowCount - 1) do
            begin
            stgridWegedaten.Rows[i].Delimiter:=c;
            s:=stgridWegedaten.Rows[i].DelimitedText ;
            F.Add(s);
            end;
            memospeicher.Lines.Assign(f);
            finally
            F.Free;
            end;

            end;
          end;

Hat jemand eine Idee wie ich nur die beschrieben Zellen aus einer Stringgrid-Spalte in eine Zeile nur durch einen Delimiter getrennt in ein Memo bekomme ???

thx
  Mit Zitat antworten Zitat