AGB  ·  Datenschutz  ·  Impressum  







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

Wort aus Textdatei laden

Ein Thema von BullsEye · begonnen am 4. Feb 2009 · letzter Beitrag vom 6. Feb 2009
Antwort Antwort
Seite 1 von 2  1 2      
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#1

Wort aus Textdatei laden

  Alt 4. Feb 2009, 16:24
Hallo DP'ler,

Ich hab ein kleines Problem, beim "herausfiltern" eines Wortes aus einer Textdatei!

Prinzip:

1) Textdatei in RichEdit laden
2) Einzelne Worte aus dem RichEdit in das Memo laden

Delphi-Quellcode:
procedure TfrmEditor.btnLadenClick(Sender: TObject);
begin
  IF OpenDialog.Execute THEN BEGIN
    RichEdit.Lines.LoadFromFile(OpenDialog.FileName);
    laden;
  END;
end;
Delphi-Quellcode:
PROCEDURE laden;
VAR
    name: String;
BEGIN
  // Name
  name := frmEditor.mConfig.Lines[235];
  Delete(name,1,Pos(#32,name));
  name := trim(name);
  Delete(name,Pos(#32,name),Length(name));
  frmEditor.edtName.text := name;
END;
soweit so gut. Funktionier an sich auch wohl super. ABER!
Die Zeile aus dem Richedit sieht so aus:
Zitat:
name "BullsEye"
Das Problem ist, mit dem oben genannten Code wird das so in das Edit geladen:

Zitat:
"BullsEye"
Ich will aber nur " BullsEye " (also ohne die " ) in dem Editfeld stehen haben. Wie kann man das machen? Ich hab nicht so das richtige gefunden. Rumprobiert habe ich auch schon viel.

Das hat folgende Gründe:

1) Optisch ist das net so dolle
2) Beim Speichern erhalte ich dann folgende Zeile:

Zitat:
name ""BullsEye""
Somit summieren sich die ""
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Wort aus Textdatei laden

  Alt 4. Feb 2009, 16:27
Entferne doch mit StringReplace die Anführungszeichen einfach.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Wort aus Textdatei laden

  Alt 4. Feb 2009, 16:35
Hallo!!

Dann lass die Anführungszeichen beim Auslesen doch einfach weg:

Delphi-Quellcode:
PROCEDURE laden;
VAR
    name: String;
BEGIN
  // Name
  name := frmEditor.mConfig.Lines[235];
  Delete(name,1,Pos(#32,name)+1); // +1
  name := trim(name);
  Delete(name,Pos(#32,name)-1,Length(name)); // -1
  frmEditor.edtName.text := name;
END;
.. oder gleich mit COPY(...)
Delphi-Quellcode:
PROCEDURE laden;
VAR
    name: String;
BEGIN
  // Name
  name := copy(frmEditor.mConfig.Lines[235], pos('"', frmEditor.mConfig.Lines[235])+1, length(frmEditor.mConfig.Lines[235]));
  name := copy(name, 1, pos('"', name)-1);
  frmEditor.edtName.text := name;
END;
Grüße,
SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#4

Re: Wort aus Textdatei laden

  Alt 4. Feb 2009, 16:40
Zitat von DeddyH:
Entferne doch mit StringReplace die Anführungszeichen einfach.
Deddy mein Held

Mit StringReplace geht das.

Delphi-Quellcode:
  // Name
  name := frmEditor.mConfig.Lines[235];
  Delete(name,1,Pos(#32,name));
  name := StringReplace(name, '"', '' , []);
  name := trim(name);
  Delete(name,Pos(#32,name),Length(name));
  name := StringReplace(name, '"', '' , []);
  frmEditor.edtName.text := name;
Allerdings ist der Lösungsvorschlag von scrat1979 kürzer und funktioniert ebenfals.

Aber kann man das ganze nun noch weiter kürzen? Sonst müsste ich allein den Code:
Delphi-Quellcode:
  // Vorwärts
  vor := frmEditor.mConfig.Lines[30];
  Delete(vor,1,Pos(#32,vor)+1);
  vor := trim(vor);
  Delete(vor,Pos(#32,vor)-1,Length(vor));
  frmEditor.edtVor.text := vor;
an die 30x haben, wegen der ganzen Variablen etc die ich laden möchte.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Wort aus Textdatei laden

  Alt 4. Feb 2009, 16:42
Mach doch einfach 'ne Funktion draus, der Du die Zeilennummer übergibst und die Dir dann den gekürzten String zurückgibt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Wort aus Textdatei laden

  Alt 4. Feb 2009, 16:43
... hab grad meinen Post oben noch editiert....

noch ein Tip für die häufige Nutzung:


Delphi-Quellcode:
function laden(Quelle : String) : String;
VAR
    temp: String;
BEGIN
  temp := copy(Quelle, pos('"', Quelle)+1, length(Quelle));
  temp := copy(temp, 1, pos('"', temnp)-1);
  
  result := temp;
END;
Aufruf z.B. mit

   frmEditor.edtVor.text := laden(frmEditor.mConfig.Lines[30]); ... alles ungetestet!

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#7

Re: Wort aus Textdatei laden

  Alt 4. Feb 2009, 16:50
Zitat von scrat1979:
... hab grad meinen Post oben noch editiert....

noch ein Tip für die häufige Nutzung:


Delphi-Quellcode:
function laden(Quelle : String) : String;
VAR
    temp: String;
BEGIN
  temp := copy(Quelle, pos('"', Quelle)+1, length(Quelle));
  temp := copy(temp, 1, pos('"', temnp)-1);
  
  result := temp;
END;
Aufruf z.B. mit

   frmEditor.edtVor.text := laden(frmEditor.mConfig.Lines[30]); ... alles ungetestet!

SCRaT
Hey, danke! So gefällt mir das viel besser

Hm naja ich weiß gerade net so ganz, Deddy. Ab und zu muss ich ja net von der selben Stelle lesen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Wort aus Textdatei laden

  Alt 4. Feb 2009, 16:53
Na, das ist doch fast das, was ich gesagt hatte, nur wird hier der komplette String übergeben, das geht natürlich auch.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#9

Re: Wort aus Textdatei laden

  Alt 4. Feb 2009, 18:39
Also, Danke nochmals!

Ich hab das mit der Funktion gemacht!

Aber wie sieht das nun aus, wenn ich folgendes lesen möchte?

Zitat:
bind "o" "say Delphi Praxis ist super!"
Das o les ich ja mit der Funktion von oben aus. Aber wie kann ich jetzt alles hinter dem say lesen? Sprich ich möchte. das im Editfeld dann folgendes steht:


Delphi Praxis ist super!

Hinter say ist ein Leerzeichen, von da bis vor dem " am Ende.

Hatte da erst an den alten Code gedacht:

Delphi-Quellcode:
  say1 := frmEditor.mConfig.Lines[315];
  Delete(say1,1,Pos(#32,say1)+9);
  say1 := trim(say1);
  Delete(vor,Pos(#32,say1)-1,Length(say1));
  frmEditor.edtSay1.text := say1;
Allerdings liest der dann nur das erste Wort "Delphi"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.544 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Wort aus Textdatei laden

  Alt 4. Feb 2009, 18:41
Das ist nun eine Sache des Eingangsformates. Dementsprechend müsstest Du die Funktion aufbauen. Wie kann so ein String denn aussehen, d.h. welche Randbedingungen sind vorgegeben?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:37 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