AGB  ·  Datenschutz  ·  Impressum  







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

Dateiinhalt -> TStrings?

Ein Thema von smash · begonnen am 25. Aug 2004 · letzter Beitrag vom 26. Aug 2004
Antwort Antwort
smash

Registriert seit: 28. Jul 2004
23 Beiträge
 
#1

Dateiinhalt -> TStrings?

  Alt 25. Aug 2004, 17:06
Hallo,

ich möchte gerne einer Assign- Methode gerne einen Dateiinhalt übergeben.
Was funktioniert ist:

XYZ.ASSIGN(Memo1.Lines); Jedoch möchte ich kein Memo- Feld übergeben, sondern wie gesagt den Inhalt einer Datei.
Also habe ich probiert:

Delphi-Quellcode:
var
   str: TStrings;
begin
   str := TStrings.Create;
   str.LoadFromFile('abc.tpl');
   XYZ.Assign(str);
end;
Dies funktioniert jedoch nicht!
Kann mir einer sagen wie es richtig sein muss?
Die Assign Methode erwartet: "Source: TPersistent"

Was aber eigentlich mein Ziel ist: Ich möchte in der Datei gerne bestimmte Variablen (%xyz%) durch bestimmte Werte ersetzen.
Wie schreibe ich mir eine Funktion welche den Inhalt einer Datei einliest, bestimmte Sachen, die irgendwo in der Datei vorkommen ersetzt, und mir eine konforme Form (TStrings?) zurückliefert?

Danke für eure Ideen und Hilfen!
  Mit Zitat antworten Zitat
int

Registriert seit: 2. Aug 2004
Ort: Essen
4 Beiträge
 
#2

Re: Dateiinhalt -> TStrings?

  Alt 25. Aug 2004, 17:08
Du kannst auch TStringList benutzen. LoadFromFile ist dabei schon integriert.
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#3

Re: Dateiinhalt -> TStrings?

  Alt 25. Aug 2004, 17:29
Wahrscheinlich ist XYZ ein Memo oder eine Listbox, dann musst du so vorgehen:
Delphi-Quellcode:
var
   str: TStrings;
begin
   str := TStrings.Create;
   str.LoadFromFile('abc.tpl');
   XYZ.Lines.Assign(str);
end;
Bzw. bei Listbox
Delphi-Quellcode:
   XYZ.Items.Assign(str);
end;
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#4

Re: Dateiinhalt -> TStrings?

  Alt 25. Aug 2004, 17:44
Zitat von int:
Du kannst auch TStringList benutzen.
Nein, du solltest TStringlist benutzen. TStrings ist eine Oberklasse, die abstrakte Methoden enthält.
Sie stellt eigentlich nur sowas wie ein Interface dar.
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
smash

Registriert seit: 28. Jul 2004
23 Beiträge
 
#5

Re: Dateiinhalt -> TStrings?

  Alt 25. Aug 2004, 17:52
Noch mal neu:

Es handelt sich um das Objekt TidMessage von den Indy- Komponenten.
Dieses Objekt hat folgende Methode:

MsgSend.Body.Assign(Source: TPersistent)

So. Folgendes funktioniert:
MsgSend.Body.Assign(Memo1.Lines);

Aber: Da ich nicht mit einem Memo arbeiten möchte, sondern eine TXT- Datei dareinladen möchte muss ich was tun?
Ich bin soweit, bzw. glaube soweit zu sein, dass ich eine TStringList oder ein TStrings brauche.
Aber mehr weiß ich nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#6

Re: Dateiinhalt -> TStrings?

  Alt 25. Aug 2004, 18:02
Dann nimm am besten:

  MsgSend.Body.LoadFromFile(textdatei); grüße, daniel
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
smash

Registriert seit: 28. Jul 2004
23 Beiträge
 
#7

Re: Dateiinhalt -> TStrings?

  Alt 26. Aug 2004, 11:22
Zitat von Sanchez:
Dann nimm am besten:

  MsgSend.Body.LoadFromFile(textdatei); grüße, daniel
Hallo Sanchez,

das funktioniert prinzipiell.
Jetzt nur noch ein Problem:

Ich will die TXT- Datei ja nicht im unveränderten Zustand senden, sondern gewisse Wörter ersetzen.

Wie gehe ich da vor?
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#8

Re: Dateiinhalt -> TStrings?

  Alt 26. Aug 2004, 11:54
Hallo,

Dann lädst du die Datei am Besten in eine Stringlist und "assignst" dann die Stringliste dem Body.

Delphi-Quellcode:
var str: TStringlist;
begin
   str := TStringlist.Create;
   str.LoadFromFile(textfile);
   
   //hier kannst du den Text manipulieren
   
   MsgSend.Body.Assign(str);
end;

grüße, daniel
Daniel
Testen ist feige!
  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 04:40 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