Autor Beitrag
stiftmaster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149



BeitragVerfasst: So 18.09.05 21:08 
Hallo Leute,

folgendes Problem:

ich habe eine Memo-Komponente, in die ich XML-Code reinschreiben kann. Dann muss dieser Code intern weiterverarbeitet werden, was bedeutet, dass ich das den Memo.Text in ein IXMLDocument laden muss. Meine Ideee, dass ganze in ein Stream zu laden - doch dabei hakt es :-(

Hier mein Code:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TMainForm.Button1Click(Sender: TObject);
var
  XML: IXMLDocument;
  Stream: TStream;
begin
  XML := TXMLDocument.Create(nil);
  Stream := TStream.Create;

  Memo1.Lines.SaveToStream(Stream);
  XML.LoadFromStream(Stream);
end;


Ich erhalte n' beschissene Zugriffsverletzung bei SaveToStream - hab aber keine Ahnung warum...

Habt ihr n' Idee

Dankend

Stefan
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: So 18.09.05 21:14 
Vllcht musst du ihm ertsmal Startpunkt Größe oder so sagen....?

_________________
Programmers never die, they just GOSUB without RETURN
stiftmaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 149



BeitragVerfasst: So 18.09.05 21:18 
ich hab irgendwie keinen Plan, wie das gehen soll...
Es gibt ja

ausblenden Delphi-Quelltext
1:
Stream.Position := 0;					

aber wie setzte ich die Größe - weiß ich die denn überhaupt, wenn ja, woher und wie setze ich die?

Stefan

Moderiert von user profile iconKlabautermann: Delphi-Tags hinzugefügt.
Grishnak
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 221

Windows XP Home
Delphi 7 PE, Delphi 2005 PE
BeitragVerfasst: Mo 19.09.05 00:59 
TStream ist eine abstrakte Basisklasse und sollte nicht direkt benutzt werden! Versuch einen TMemoryStream oder TFileStream!

_________________
Mach' etwas idiotensicher und irgendjemand erfindet einen besseren Idioten!
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mo 19.09.05 01:09 
Das dürfte auch ohne Stream gehen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TMainForm.Button1Click(Sender: TObject);
var
  XML: IXMLDocument;
begin
  XML := NewXMLDocument
  XML.XML.Text:=Memo1.Text;
  XML.Active:=True;
end;

Wenn ich mich recht entsinne, dürfte das reichen.