In eine Listbox ein Text einfügen

Hallo alle zusammen,
ich habe eine Frage und zwar ist es möglich eine Textdatei bei einer Listbox bei Delphi einzufügen, also zum Beispiel ein geschriebener Text in einer Word-Datei in die Listbox einzufügen.
Meine Idee wäre gewesen das über Listbox.items.add(’…’); zu machen.
Allerdings wäre das sehr aufwendig, da man bei jeder neuen Zeile wieder Listbox.items.add(’…’) schreiben müsste.
Deswegen wollte ich fragen, ob Ihr eventuell eine Möglichkeit kenn, dieses Verfahren zu umgehen.
Mit freundlichen Grüßen
John

Hallo John!

Mit einer Stringlist, in die dann Text aus einer Textdatei lädst, müsste es gehen.

Eine Word-Datei wird sehr viel schwieriger, da sie in einem speziellen Format abgespeichert ist.

Code kann ich Dir im Moment keinen zusenden, da ich unterwegs bin und nur den Laptop dabei habe.

Michael.

Hallo!
Deine Idee ist nicht ganz falsch!
Versuche die Textdatei in eine Stringlist zu laden und per for-to-Anweisung den Inhalt in die Listbox zu schreiben! Mit Word dateien wird das aber etwas schwer, da du es hier nicht mehr mit Unicode-Text zu tun hast!

MFG Wii360

Hallo John,
hab mich zwar schon seehhrr lange nicht mehr mit Delphi auseinandergesetzt, würde aber mal sagen, dafür ist die ListBox nicht da,nimm doch einfach ein MemoFeld, glaube das ist besser.

Grüsse

Hallo John,
Du kannst den Inhalt einer Listbox z.B. ueber „assign“ setzen. Siehe folgendes Beispiel (das Formular dazu kannst Du sicher selbst schneller erstellen, als ich es per copy/paste hier einfuegen kann).

Viele Gruesse
Veit

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TWordDocumentStrings = class(TStringList)

private

procedure fillSampleData;

function isWordDocument(const fileName: string): boolean;

public

constructor Create(const fileName: TFilename);

procedure LoadFromFile(const fileName: string); override;

end;

TForm1 = class(TForm)

ListBox1: TListBox;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

items: TWordDocumentStrings;

begin

items:=TWordDocumentStrings.Create(‚meinworddocument.doc‘);

ListBox1.Items.Assign(items);

items.free;
end;

{ TWordDocumentItems }

constructor TWordDocumentStrings.Create(const fileName: TFilename);

begin

inherited Create;

//hier Dein Worddokument laden

LoadFromFile(fileName);

//fuer das Beispiel zufaellige daten

fillSampleData;

end;

function TWordDocumentStrings.isWordDocument(const fileName: string): boolean;

var

len1: integer;

suffix: string;

begin

//todo: sinnvollere ueberpruefung ueberlegen

len1:=length(fileName);

suffix:=copy(fileName,len1-2,3);

result:=suffix=‚doc‘;

end;

procedure TWordDocumentStrings.LoadFromFile(const fileName: string);

begin

if (isWordDocument(fileName)) then begin

//word document laden

//da kann ich nicht helfen - word fasse ich nicht an

end else begin

inherited LoadFromFile(fileName);

end;

end;

procedure TWordDocumentStrings.fillSampleData;

var

i,j: integer;

s: string;

begin

i:=0;

s:=’’;

while i

Kann leider nicht (mehr) helfen. Bin zu lange raus aus dem Geschäft. Sorry.
Gruß Mathias

Hallo John,

beschreibe mal etwas genauer, was du möchtest. Soll das Einfügen per Copy and Paste geschehen. Das Lesen einer Word-Datei ist ja nicht so einfach. Vielleicht bringt dich ja auch schon das Memofeld weiter.

Gruß
Andreas