![]() |
Memo.Text := Ansistring? nur wie
Salvete,
Ich bekomme wegen dem Ansikram graue Haare. Wie bekomme ich den Inhalt eines Ansistring in z.B. Memo.text oder eine normale string-Variable und umgekehrt? D2009 ist da ja recht brutal! Gruss EL |
Re: Memo.Text := Ansistring? nur wie
Ich würde es mit move probieren. Wenn der String jedoch ein Unicodestring ist sollte es mit CharToWideChar oder so ähnlich funktionieren.
|
Re: Memo.Text := Ansistring? nur wie
Du kannst einer Stringvariablen problemlos einen AnsiString zuweisen. Umgekehrt kann es natürlich Probleme geben
|
Re: Memo.Text := Ansistring? nur wie
Zitat:
auch mit move geht es nicht - kracht mit einer Access Violation weg.
Delphi-Quellcode:
wie bringe ich das in eine lauffähige Version?
if odlg.Execute then begin
fs := TFileStream.Create(odlg.FileName, fmOpenRead or fmShareDenyWrite); fs.Position := 0; // File in den String-Stream schreiben sstream := TStringStream.Create; sStream.CopyFrom(fs,fs.size); ansitmp := sStream.DataString; move(ansitmp,stmp,length(ansitmp)); memo1.text := stmp; freeandnil(sstream); freeandnil(fs); end; Gruss EL |
Re: Memo.Text := Ansistring? nur wie
Zitat:
|
Re: Memo.Text := Ansistring? nur wie
[quote="emsländer"]
Delphi-Quellcode:
Das ist ja wie "Query.Open;Query.First". Wo steht man denn wohl, wenn man die Datei gerade geöffnet hat.
if odlg.Execute then begin
fs := TFileStream.Create(odlg.FileName, fmOpenRead or fmShareDenyWrite); fs.Position := 0; // File in den String-Stream schreiben Zitat:
Warum nicht einfach so einlesen:
Delphi-Quellcode:
var
Stream: TFileStream; AnsiTemp: AnsiString; begin ... Stream := TFileStream.Create(odlg.FileName, fmOpenRead or fmShareDenyWrite); try SetLength(AnsiTemp, Stream.Size); if AnsiTemp <> '' then Stream.Read(AnsiTemp[1], Stream.Size); finally Stream.Free; end; Memo1.Lines.Text := string(AnsiTemp); // hier findet ein Aufruf von MultiByteToWideChar() statt end; |
Re: Memo.Text := Ansistring? nur wie
das es bei move kracht liegt daran was du übergibst. Du übergibst ja sozusagen den Pointer und nicht das worauf dieser zeigt (Strings sind ja nicht die Daten an sich sondern ein Gebilde was auf Daten zeigt)
|
Re: Memo.Text := Ansistring? nur wie
Zitat:
Gruss EL |
Re: Memo.Text := Ansistring? nur wie
Zitat:
|
Re: Memo.Text := Ansistring? nur wie
Zitat:
Gruss EL |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz