AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Ausblenden von Zeilen beim füllen eines Memo's mit Daten
Thema durchsuchen
Ansicht
Themen-Optionen

Ausblenden von Zeilen beim füllen eines Memo's mit Daten

Ein Thema von Helpliner · begonnen am 12. Aug 2003 · letzter Beitrag vom 13. Aug 2003
Antwort Antwort
Helpliner

Registriert seit: 6. Aug 2003
Ort: Hamburg
84 Beiträge
 
Delphi 7 Personal
 
#1

Ausblenden von Zeilen beim füllen eines Memo's mit Daten

  Alt 12. Aug 2003, 22:05
Hi Leute,

ich lade über

Memo1.Lines.LoadFromFile('Datei'); eine Textdatei in ein Memo, das klappt auch soweit.
Nun möchte ich aber alle Zeilen die an erster Stelle ein "#" haben nicht im Memo anzeigen (Sie müssen nach dem bearbeiten aber wieder mit in die Datei geschrieben werden)

Da ich absoluter Newbie bin, wäre eine kleine Erklärung nett (wenn sowas überhaupt geht)
VORSICHT: blutiger Anfänger!

Ähnlichkeiten mit tatsächlich funktionierendem Code sind rein zufällig und definitiv unbeabsichtigt.
  Mit Zitat antworten Zitat
imp

Registriert seit: 5. Mai 2003
25 Beiträge
 
#2

Re: Ausblenden von Zeilen beim füllen eines Memo's mit Daten

  Alt 12. Aug 2003, 22:40
Bleibt dir wohl nichts anderes übrig als die Zeilen manuell zu löschen . Ich bin mir nicht sicher ob es beim Memo BeginUpdate und EndUpdate gibt deshalb würde ich dir empfehlen die Datei in eine StringList zu laden, die entsprechenden Zeilen aus dieser zu löschen und dann die StringListe dem Memo zuzuweisen.
  Mit Zitat antworten Zitat
Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#3

Re: Ausblenden von Zeilen beim füllen eines Memo's mit Daten

  Alt 12. Aug 2003, 23:28
Hi,

also das geht so:

Erst lädst du deine Datei in dein Memo, wie du es schon beschrieben hattest. Dann benötigst du noch eine StringList, die die ursprüngliche Datei zwischenspeichert, weil du ja die Zeilen mit einem # aus der Memo rauslöschen musst. Das sieht dann bis hierhin so aus:

Code:
private
   Temp : TStringList;

[...]
procedure ...;
begin
Temp := TStringList.Create;
Memo1.Lines.LoadFromFile('Datei');
Temp := Memo1;

end;
So, jetzt hast du den Inhalt in der Temp-StringList gespeichert. Jetzt musst du überprüfen, welche Zeile ein # am Anfang hat. Das geht so:

Code:
var Zeile : Byte;
begin
for Zeile := 0 to Memo1.Lines.Count-1 do
if Copy(Memo1.Lines[Zeile],0,1) = '#' then
Memo1.Lines.Delete(Zeile);
So, das wäre es dann soweit. Wenn du jetzt den alten Zustand widerherstellen möchtest, musst du einfach die Temp-Stringlist in das Memo laden:

Code:
Memo1.Text := Temp.Text;
Am Ende, solltest du noch den Speicher der Temp-Stringlist freigeben:

Code:
procedure TForm1.FormDestroy(Sender: TObject);
begin
Temp.Free;

end;
Das war´s...wenn du noch Fragen hast, her damit *g*.

Gruß Yheeky
  Mit Zitat antworten Zitat
Illuminator-23-5
(Gast)

n/a Beiträge
 
#4

Re: Ausblenden von Zeilen beim füllen eines Memo's mit Daten

  Alt 12. Aug 2003, 23:37
ich hab mir da folgendes überlegt:
sobald du alle zeilen löschst, die ein # am anfang haben, bringt er sicher eine fehlermeldung (außer da is keine solche zeile vorhanden)

wenn du hingegen die schleife rückwärts laufen lässt, dürfte es funktionieren, sprich:
Delphi-Quellcode:
var
  i: integer;
begin
  for i := Memo1.Lines.Count-1 to 0 do
  if Memo1.Lines[i][1] = '#then
    Memo1.Lines.Delete(i);
end;
damit müsste es dann funktionieren
  Mit Zitat antworten Zitat
Helpliner

Registriert seit: 6. Aug 2003
Ort: Hamburg
84 Beiträge
 
Delphi 7 Personal
 
#5

Re: Ausblenden von Zeilen beim füllen eines Memo's mit Daten

  Alt 12. Aug 2003, 23:56
Erstmal vielen Dank euch dreien,

ich probiere das morgen mal aus und sollte ich noch Fragen haben (was ich für ziemlich wahrscheinlich halte) bin ich so frei diese hier zu posten
VORSICHT: blutiger Anfänger!

Ähnlichkeiten mit tatsächlich funktionierendem Code sind rein zufällig und definitiv unbeabsichtigt.
  Mit Zitat antworten Zitat
Helpliner

Registriert seit: 6. Aug 2003
Ort: Hamburg
84 Beiträge
 
Delphi 7 Personal
 
#6

Re: Ausblenden von Zeilen beim füllen eines Memo's mit Daten

  Alt 13. Aug 2003, 14:39
OK bin gerade am testen und stehe schon im ersten Block vor einem Problem.

Wenn ich versuche der TStringList den Inhalt des Memos zuzuweisen:

Delphi-Quellcode:
private
   Temp : TStringList;

[...]
procedure ...;
begin
Temp := TStringList.Create;
Memo1.Lines.LoadFromFile('Datei');
Temp := Memo1; <-- da wird gemeckert

end;
bekomme ich die FM das TStringList und TMemo inkompatible Typen sind, das selbe passiert auch wenn ich es per:

Temp := Memo1.Lines; oder

Temp := Memo1.Text; versuche, was mach ich da jetzt falsch ?
VORSICHT: blutiger Anfänger!

Ähnlichkeiten mit tatsächlich funktionierendem Code sind rein zufällig und definitiv unbeabsichtigt.
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#7

Re: Ausblenden von Zeilen beim füllen eines Memo's mit Daten

  Alt 13. Aug 2003, 14:44
Probier mal:
Temp.Text := Memo1.Text;
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Ausblenden von Zeilen beim füllen eines Memo's mit Daten

  Alt 13. Aug 2003, 14:52
Sehr interessant

Jetzt verwendet ihr schon eine zweite Strringliste, und dann ladet ihr die Datei trotzdem in die Stringliste des Memos.

Ich würde so vorgehen:

1. In eine temporäre Stringliste wird per LoadFromFile die Datei geladen.
2. Eine Schleife von StringList.Count-1 bis 0. In der wird die Zeile gelöscht, falls das erste Zeichen ein # ist.
3. Diese Stringlist der Stringliste des Memos zuweisen und die temporäre Liste freigeben
4. fertig

Also Code:
Delphi-Quellcode:
var
  temp: TStringList;
  i: Integer;
begin
  temp := TStringLList.Create;
  try
    temp.LoadFromFile('test.txt');
    for i := temp.Count - 1 downto 0 do
      if temp[i][0] = '#then Delete(i);
    Memo1.Lines.Assign(temp);
  finally
    temp.Free;
end;
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  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 13:08 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