| Autor | 
Beitrag | 
drache999   
        
 
Beiträge: 18 
 
 
 
 | 
Verfasst: Mo 19.03.18 20:27 
 
		                                                          Delphi-Quelltext                                	 															1:
  				 | 									s := SplitString(StringGrid1.Cells[StringGrid1.Col + 1, StringGrid1.Row], ' ');					 				 | 			 		 	  
Beim Kompilieren meckert er "SplitString" an  
 
 | 
 | 
Frühlingsrolle 
Ehemaliges Mitglied
 
Erhaltene Danke: 1 
 
 
 
 | 
Verfasst: Mo 19.03.18 20:53 
 
- Nachträglich durch die Entwickler-Ecke gelöscht - 
 
 | 
 | 
drache999   
        
 
Beiträge: 18 
 
 
 
 | 
Verfasst: Mo 19.03.18 21:20 
 
ist drin.
 
																	1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149:
  				 | 									unit Unit1;
  interface
  uses   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Types, Vcl.Graphics,   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.StdCtrls, Vcl.ComCtrls;
  type   TForm1 = class(TForm)     Memo1: TMemo;     Button1: TButton;     Edit1: TEdit;     StringGrid1: TStringGrid;     Button2: TButton;     Button3: TButton;     procedure Button1Click(Sender: TObject);     procedure StringGrid1Click(Sender: TObject);     procedure FormCreate(Sender: TObject);     procedure Button2Click(Sender: TObject);     procedure Button3Click(Sender: TObject);   private        public        end;
  var   Form1: TForm1;
  implementation
  {$R *.dfm}
  procedure SaveStringGridToFile(StringGrid: TStringGrid; const FileName: String); var   F: TStringList;   i: Integer; begin   F := TStringList.Create;   try     F.Add(IntToStr(StringGrid.RowCount));     F.Add(IntToStr(StringGrid.ColCount));     for i := 0 to (StringGrid.RowCount - 1) do       F.Add(StringGrid.Rows[i].CommaText);     F.SaveToFile(FileName);   finally     F.Free;   end; end;
  procedure TForm1.Button2Click(Sender: TObject); begin   SaveStringGridToFile(StringGrid1, '.\daten.dat'); end;
 
  procedure LoadStringGridFromFile(StringGrid: TStringGrid; const FileName: String); var   F: TStringList;   i: Integer; begin   F := TStringList.Create;   try     F.LoadFromFile(FileName);     StringGrid.RowCount := StrToInt(F[0]);     StringGrid.ColCount := StrToInt(F[1]);     for i := 0 to (StringGrid.RowCount - 1) do       StringGrid.Rows[i].CommaText := F[i + 2];   finally     F.Free;   end; end;
  procedure TForm1.Button3Click(Sender: TObject); begin   if FileExists('.\daten.dat') then  LoadStringGridFromFile(StringGrid1, '.\daten.dat'); end;
 
  procedure TForm1.FormCreate(Sender: TObject); begin   Edit1.Clear;   Memo1.Clear; end;
  procedure TForm1.Button1Click(Sender: TObject); var   s: string; begin     StringGrid1.RowCount := StringGrid1.RowCount + 1;   StringGrid1.Cols[0].Add(Trim(Edit1.Text)).Size;     StringGrid1.Cols[1].Add(Memo1.Lines.Text.Replace(sLineBreak, ' '));   Edit1.Clear;   Memo1.Clear;   Edit1.SetFocus; end;
 
  procedure TForm1.StringGrid1Click(Sender: TObject); var   s: TStringDynArray;   i: Integer; begin   if StringGrid1.Col = 0 then   begin     Edit1.Clear;     Memo1.Clear;     Edit1.Text := StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row];;     s := SplitString(StringGrid1.Cells[StringGrid1.Col + 1, StringGrid1.Row], ' ');     for i := 0 to Length(s) - 1 do       Memo1.Lines.Add(s[i]);     end;   SendMessage(Memo1.Handle, WM_VSCROLL, SB_TOP, 0); end;
 
  end.					 				 | 			 		 	   
 
 | 
 | 
Frühlingsrolle 
Ehemaliges Mitglied
 
Erhaltene Danke: 1 
 
 
 
 | 
Verfasst: Mo 19.03.18 22:35 
 
- Nachträglich durch die Entwickler-Ecke gelöscht - 
 
 | 
 | 
drache999   
        
 
Beiträge: 18 
 
 
 
 | 
Verfasst: Mo 19.03.18 22:52 
 
ok, jetzt kein fehler. aber immer noch nicht so wie es sein sollte ;( 
Einloggen, um Attachments anzusehen!
 
 
 | 
 | 
drache999   
        
 
Beiträge: 18 
 
 
 
 | 
Verfasst: Mo 19.03.18 22:54 
 
		                                                          Delphi-Quelltext                                	 															1:
  				 | 									StringGrid1.Cols[1].Add(Memo1.Lines.Text.Replace(sLineBreak, ' '));					 				 | 			 		 	  
kann man nicht ein CR + LF eingeben? Ich weiß das ein String zurück gegeben wird. Aber wie kann man es anders realisieren?  
 
 | 
 | 
Frühlingsrolle 
Ehemaliges Mitglied
 
Erhaltene Danke: 1 
 
 
 
 | 
Verfasst: Mo 19.03.18 23:08 
 
- Nachträglich durch die Entwickler-Ecke gelöscht - 
 
 | 
 | 
drache999   
        
 
Beiträge: 18 
 
 
 
 | 
Verfasst: Mo 19.03.18 23:14 
 
danke aber das du die geduld hattest 
 
 | 
 | 
Frühlingsrolle 
Ehemaliges Mitglied
 
Erhaltene Danke: 1 
 
 
 
 | 
Verfasst: Mo 19.03.18 23:18 
 
- Nachträglich durch die Entwickler-Ecke gelöscht - 
 
 | 
 | 
drache999   
        
 
Beiträge: 18 
 
 
 
 | 
Verfasst: Mo 19.03.18 23:26 
 
danke dir,
 das wäre eine alternative.
 aber in dem memo können auch zeichen wie das komma drin vorkommen.
 dann würde es automatisch ein zeilenumbruch machen. 
 
 | 
 | 
Frühlingsrolle 
Ehemaliges Mitglied
 
Erhaltene Danke: 1 
 
 
 
 | 
Verfasst: Mo 19.03.18 23:32 
 
- Nachträglich durch die Entwickler-Ecke gelöscht - 
 
 | 
 | 
drache999   
        
 
Beiträge: 18 
 
 
 
 | 
Verfasst: Mo 19.03.18 23:37 
 
wie kann man es ganz anders aufbauen damit der text im memo 1:1 übergeben wird und dann auch wieder so geladen wird.
 
 vielleicht kein StringGrid? Vielleicht eine andere Komponennte? 
 
  Zuletzt bearbeitet von drache999 am Mo 19.03.18 23:41, insgesamt 1-mal bearbeitet
 | 
 | 
drache999   
        
 
Beiträge: 18 
 
 
 
 | 
Verfasst: Mo 19.03.18 23:40 
 
ich habe ein "#" eingepflegt. Das wird bestimmt nicht im Memo vorkommen. Und somit funktioniert es !
 Ich danke dir vielmals!    
 
 | 
 | 
Frühlingsrolle 
Ehemaliges Mitglied
 
Erhaltene Danke: 1 
 
 
 
 | 
Verfasst: Mo 19.03.18 23:49 
 
- Nachträglich durch die Entwickler-Ecke gelöscht - 
 
 | 
 | 
Sinspin 
        
 
Beiträge: 1335 
Erhaltene Danke: 118 
 
Win 10 
RIO, CE, Lazarus 
 | 
Verfasst: Di 20.03.18 07:58 
 
Hey, bevor Du dich selber damit rumärgerst das zu implementieren, die TStringList unterstützt das CSV Format. 
 Dafür weist Du der Eigenschaft CommaText einen String zu oder ließt ihn aus. Jeder Eintrag in der StringList entspricht dann einer Spalte einer Zeile in deiner Tabelle.
 Dabei ist es egal ob der Text Kommas, Punkte oder andere Sonderzeichen enthält.
 Mit einer zweiten TStringList kannst Du die einzelnen Zeilen deiner Tabelle dann einfach laden und speichern. 
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
  
 | 
 |