AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Textausgabe -> TMemo

Ein Thema von JBJHJM · begonnen am 5. Apr 2009 · letzter Beitrag vom 6. Apr 2009
Antwort Antwort
JBJHJM

Registriert seit: 16. Jan 2009
88 Beiträge
 
Delphi 2005 Personal
 
#1

Problem mit Textausgabe -> TMemo

  Alt 5. Apr 2009, 21:20
Hi! Ich habe ein - sicherlich ganz einfach zu lösendes- Problem...
Hier ist ein Ausschnitt aus einem Code:

Delphi-Quellcode:
begin
  Textoutput.Clear;
  b:=0;
  a:=length(textinput.Lines[0]);
  if a>0 then
  begin
    repeat
      begin
       s1:= Textinput.lines[b];
       s2:= Bearbeitung(s1);
       Textoutput.Lines[b]:= s2;

       b:=b+1;
       a:= length(textinput.Lines[b]);
       showmessage(s1+' '+s2);
      end;
    until a=0;
  end
    else showmessage('Bitte Text eingeben!');
end;
Der Code liest -Zeile für Zeile- aus textinput ein, bearbeitet ihn mit "Bearbeitung" und gibt ihn in textoutput aus, textinput und textoutput sind TMemos. "Showmessage..." ist nur zum testen!

DAS PROBLEM:
Die erste Zeile läuft einwandfrei durch, die Zweite aber nur bis "s2:= Bearbeitung...", also s2 wird noch richtig bestimmt, aber eigentlich sollte s2 dann ja in der 2. Zeile ausgegeben werden, aber das wird es leider nicht

Weiss jemand woran das liegt??

P.S.: Bin eher Einsteiger, also wundert euch nicht über solche Fragen
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.353 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem mit Textausgabe -> TMemo

  Alt 5. Apr 2009, 21:27
Du leerst Textoutput und greifst dann auf Zeile b zu? Textoutput.Lines[b] Und was machst du mit der Länge der ersten Zeile?a:=length(textinput.Lines[0]); Vielleicht einmal folgendes:
Die Anzahl der Zeilen bekommst du mit Textinput.Lines.Count, den kompletten Inhalt mit allen Zeilen bekommst du mit Textinput.Text. Auf die Zeile b greifst du mit Textinput.Lines[b] zu.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Problem mit Textausgabe -> TMemo

  Alt 5. Apr 2009, 21:31
Zudem könnte man die Zeile ja mit Memo.Lines.Append() ans Memo anfügen.
Markus Kinzler
  Mit Zitat antworten Zitat
JBJHJM

Registriert seit: 16. Jan 2009
88 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Problem mit Textausgabe -> TMemo

  Alt 5. Apr 2009, 22:32
Zitat von jaenicke:
Du leerst Textoutput und greifst dann auf Zeile b zu? Textoutput.Lines[b] Und was machst du mit der Länge der ersten Zeile?a:=length(textinput.Lines[0]); Vielleicht einmal folgendes:
Die Anzahl der Zeilen bekommst du mit Textinput.Lines.Count, den kompletten Inhalt mit allen Zeilen bekommst du mit Textinput.Text. Auf die Zeile b greifst du mit Textinput.Lines[b] zu.
Textinput.Lines.Count ist schon mal eine hilfreiche Vereinfachung!

a:=length(textinput.Lines[0]); Habe ich benutzt, um zu kontrollieren, ob überhaupt etwas ins Memo eingetragen ist, ansonsten kommt die Messagebox...

Zitat von jaenicke:
Du leerst Textoutput und greifst dann auf Zeile b zu?
Damit meinst du im Grunde, dass ich, wenn ich das Memo leere auch nur auf die 1. Zeile zugreifen kann?


Zitat von mkinzler:
Zudem könnte man die Zeile ja mit Memo.Lines.Append() ans Memo anfügen.
Ich glaube, das ist es, was ich gesucht habe, ich werde es spätestens Morgen ausprobieren!

Vielen Dank euch beiden!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.353 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Problem mit Textausgabe -> TMemo

  Alt 5. Apr 2009, 22:37
Zitat von JBJHJM:
Zitat von jaenicke:
Du leerst Textoutput und greifst dann auf Zeile b zu?
Damit meinst du im Grunde, dass ich, wenn ich das Memo leere auch nur auf die 1. Zeile zugreifen kann?
Es gibt dann keine Zeile, also kannst du auch nicht auf eine Zeile zugreifen.

Schau dir doch einfach einmal an welche Möglichkeiten es gibt, in der Hilfe und bei der Syntaxergänzung. Also wenn du den Punkt nach Textinput.Lines schreibst z.B., dann bietet Delphi dir ja an welche Möglichkeiten es gibt. Und viele (wie Add z.B.) sagen ja schon vom Namen her was sie machen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Problem mit Textausgabe -> TMemo

  Alt 6. Apr 2009, 05:58
Hallo,

das ganze sollte dann ungefähr so aus sehen...

Delphi-Quellcode:
begin
  Textoutput.Clear;
  b := 0;
  a :=Textinput.Lines.Count;
  if a > 0 then
  begin
    while a > b then
      begin
       s1:= Textinput.lines[b];
       s2:= Bearbeitung(s1);
       Textoutput.Lines.Add := s2;
       b:=b+1;
      end;
  end
    else showmessage('Bitte Text eingeben!');
end;
[EDIT] Hab gerade kein Delphi zur Hand, du musst allerdings, den unteren Teil nochmal überprüfen.

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.353 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Problem mit Textausgabe -> TMemo

  Alt 6. Apr 2009, 06:19
Oder so, es sei denn es soll eine while-Schleife sein:
Delphi-Quellcode:
Textoutput.Text := '';
for i := 0 to Textinput.Lines.Count - 1 do
  Textoutput.Lines.Add(Bearbeitung(Textinput.Lines[i]));
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Problem mit Textausgabe -> TMemo

  Alt 6. Apr 2009, 07:02
Zitat:
Oder so, es sei denn es soll eine while-Schleife seinelphi-Quellcode: markieren
Delphi-Quellcode:
Textoutput.Text := '';
for i := 0 to Textinput.Lines.Count - 1 do
  Textoutput.Lines.Add(Bearbeitung(Textinput.Lines[i]));
Diese Lösung ist allerdings schöner. Hab ich gar nicht so schnell drüber nachdeacht.

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
JBJHJM

Registriert seit: 16. Jan 2009
88 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Problem mit Textausgabe -> TMemo

  Alt 6. Apr 2009, 18:27
Zitat von jaenicke:
Oder so, es sei denn es soll eine while-Schleife sein:
Delphi-Quellcode:
Textoutput.Text := '';
for i := 0 to Textinput.Lines.Count - 1 do
  Textoutput.Lines.Add(Bearbeitung(Textinput.Lines[i]));
Ist eine wirklich praktische... und kurze Lösung! Vielen Dank, Problem geklärt!
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:47 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