Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Auf Memo Zeilen Zugreifen (https://www.delphipraxis.net/129173-auf-memo-zeilen-zugreifen.html)

alex.666 13. Feb 2009 22:58

Datenbank: MyBase • Zugriff über: ClientDataSet

Auf Memo Zeilen Zugreifen
 
Hallo!

Hab volgendes Problem:

Ich will von einem fkMemo Feld, eine bestimmte Zeile auslesen. (funktioniert aber nicht).

fkMemo:
A
B
C

wenn ich:

Delphi-Quellcode:
ListBox1.Items.Add(ClientDataSet1.FieldByName('Memo1').AsString[1]);
versuche, bekomme ich den wert "A".

wenn ich:

Delphi-Quellcode:
ListBox1.Items.Add(ClientDataSet1.FieldByName('Memo1').AsString[2]);
versuche, bekomme ich nichts.

wie kann ich direkt auf die zeilen von einem ClientDataSet.Memo zugreifen?

kann mir da jemand helfen? (bitte mit Beispiel Code)

Danke!

mkinzler 13. Feb 2009 23:01

Re: Auf Memo Zeilen Zugreifen
 
Zerlege den Inhalt anhand der Zeilentrenner

alex.666 13. Feb 2009 23:03

Re: Auf Memo Zeilen Zugreifen
 
und wie mach ich das? :-)

craash 13. Feb 2009 23:11

Re: Auf Memo Zeilen Zugreifen
 
versteh ich das problem nicht richtig? :gruebel:

mein erster gedanke wäre
Delphi-Quellcode:
mem.lines.strings[x]

mkinzler 13. Feb 2009 23:16

Re: Auf Memo Zeilen Zugreifen
 
Z.B. mit Hilfe einer StringListe oder ExplodeExplode

alex.666 13. Feb 2009 23:25

Re: Auf Memo Zeilen Zugreifen
 
@craash
aber ich hab je keine memo komponente, ich hab ja nur ein memo feld. also zu den lienes.string[i] komm ich ja gar nicht.
sollte ich zu blöd sein, dann poste doch bitte einen beispiel code.

@mkinzler
ich versuch mich gerade mit TStringList. bekomme aber nur schutzverletzungen. :-(

mr_emre_d 14. Feb 2009 00:17

Re: Auf Memo Zeilen Zugreifen
 
Zitat:

Zitat von alex.666
Hab volgendes Problem

Ähm ... anscheinend :D

alex.666 14. Feb 2009 00:20

Re: Auf Memo Zeilen Zugreifen
 
ja, ich weiß ich bin ein neuling.
habs aber jetzt:

Delphi-Quellcode:
procedure TForm3.Button3Click(Sender: TObject);
var
  s : TStringList;
begin
  s := TStringList.Create;
  s.Text := 'A' + #13 + 'B';
  ClientDataSet1.Edit;
  ClientDataSet1.FieldByName('Memo1').AsString := s.Text;
  ListBox1.Items.Add(s.Strings[1]); //(='B')
  //ListBox1.Items.Add(ClientDataSet1.FieldByName('Memo1').AsString);
end;
falls jemand eine schönere lösung hat,... :-)

HaJo 14. Feb 2009 00:34

Re: Auf Memo Zeilen Zugreifen
 
Hallo Alex,

den Zugriff auf ein dbMemofeld kannst Du z.B. über eine For-schleife vornehmen:


Delphi-Quellcode:
   
VAR
   I,
   MeineZeile : INTEGER;
   MeinText  : STRING[255];
BEGIN
   MeineZeile := 9 // Deine zu lesende Zeile 10 :-)
   MeinText :=''; // Variable sollten immer initialisiert werden
   
   for I := 0 to MeineForm.dbMemo1.Lines.Count - 1 do
      begin
         forms.Application.ProcessMessages; // nur wenn Du beim lesen zusehen möchtest
         IF (I = MeineZeile) THEN
            BEGIN
               MeinText := MeineForm.dbMemo1.Lines[I]);
               Break; // gelesen also raus hier
            END;
      end;
END;
@Alex:
Man darf aber auch die Delphi-Hilfe ab und an bemühen:
Zitat:

In diesem Beispiel wird ein Formular mit einer Schaltfläche und einer Memokomponente verwendet. Wenn der Benutzer auf die Schaltfläche klickt, wird der Inhalt der Datei AUTOEXEC.BAT in die Memokomponente geladen und die sechste Zeile der Datei am oberen Rand des Formulars angezeigt.

procedure TForm1.Button1Click(Sender: TObject);

begin
Memo1.Lines.LoadFromFile('C:\AUTOEXEC.BAT');
Writeln('The 6th line of AUTOEXEC.BAT is: ', Memo1.Lines[5]);
end;
@mkinzler:
Sorry, aber Deine Art zu antworten sorgt hier meist für die Seitenlangen Frage- und Antwortspiele.
Deine Art mit Einzeilern zu antworten ist eher kontraproduktiv und wirft meist mehr Fragen auf statt zu helfen.

alex.666 14. Feb 2009 00:44

Re: Auf Memo Zeilen Zugreifen
 
Danke.

aber ich verwende kein TMemo oder TDBMemo, ich greife nur auf ein ClientDataSet(MyBase, XML) zu, welches ein
fkMemo feld hat.
aber mir TStringList, kann ich wunderschön arbeiten(delete, insert,...)

vielen lieben dank...


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz