Delphi-PRAXiS

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...

mr_emre_d 14. Feb 2009 00:49

Re: Auf Memo Zeilen Zugreifen
 
Zitat:

Zitat von alex.666
ja, ich weiß ich bin ein neuling.

Meine Aussage ist nicht Delphi-spezifisch ;)

MfG

HaJo 14. Feb 2009 00:52

Re: Auf Memo Zeilen Zugreifen
 
Laßt mich alten Kerl mal konkret nachfragen,

lernt Ihr mittlerweile Delphi wirklich in der Schule??

jaenicke 14. Feb 2009 01:02

Re: Auf Memo Zeilen Zugreifen
 
Pascal wird durchaus in der Lehre benutzt, auch an Universitäten. Dafür wurde die Sprache ja entwickelt. Und auch wenn heute vielerorts eher Java z.B. benutzt wird, ist Pascal trotzdem nicht ganz verschwunden. ;-)

Heute wird Delphi an Schulen durchaus benutzt, wenn auch leider meistens eher alte Versionen wie Delphi 3. Bei uns in der Schule stand noch Delphi 5, es hat aber keiner mehr benutzt, bei uns kam Java dran.

HaJo 14. Feb 2009 01:14

Re: Auf Memo Zeilen Zugreifen
 
Noch ein Nachtrag zu diesem Einzeiler:
Zitat:

Zitat von mkinzler
Zerlege den Inhalt anhand der Zeilentrenner

Ein Memofeld ist nichts anderes wie ein Blatt Papier in der Schreibmaschine :-)

Schreibt man damit etwas und kommt ans Ende der Zeile, drückt man die Taste Enter.

In der EDV besteht die Taste Enter aus zweierlei Zeichen: Einem Linefeed und Wagenrücklauf. Also aus zwei Steuerzeichen deren ASCII-Werte sind: Linefeed = #10 und Wagenrücklauf = #13.
Die richtigen Profis nennen das auch sehr gerne "0D0A" - lach - und meinen damit den Hex-Wert dieser beiden Zeichen.

Das sind die Zeilentrenner die gemeint waren und nach denen man einen kompletten Text sicherlich in einzele Zeilen zerlegen kann.

HaJo 14. Feb 2009 01:26

Re: Auf Memo Zeilen Zugreifen
 
Danke Dir Sebastian für die Auskunft,

trotzdem kann ich mir nicht vorstellen wie das in der Praxis sein soll.
Die Lehrer sind doch in der Regel auch nicht gerade die jüngsten.

Wie bringen die das denn rüber? Müsst Ihr da nicht oft mal die Lippen zusammen kneifen um nicht laut loszulachen?

jaenicke 14. Feb 2009 01:40

Re: Auf Memo Zeilen Zugreifen
 
Zitat:

Zitat von HaJo
trotzdem kann ich mir nicht vorstellen wie das in der Praxis sein soll.
Die Lehrer sind doch in der Regel auch nicht gerade die jüngsten.

Wie bringen die das denn rüber? Müsst Ihr da nicht oft mal die Lippen zusammen kneifen um nicht laut loszulachen?

Was hat das jetzt speziell mit Delphi zu tun, also was ist da der Unterschied zu anderen Sprachen?

Bei uns lief das mit Java recht gut, die Lehrer haben nicht behauptet alles zu wissen und dann gab es auch keine Probleme. Problematisch ist an der Stelle doch nur, wenn ein Lehrer so tut als würde er sich besser auskennen als er es tut. ;-)

Aber das passt hier in das Thema nicht rein, das gehört eher in K&T. ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:44 Uhr.

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