AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Strings und Ansistrings, Nullterminiert?
Thema durchsuchen
Ansicht
Themen-Optionen

Strings und Ansistrings, Nullterminiert?

Ein Thema von SyntaxXx · begonnen am 24. Feb 2012 · letzter Beitrag vom 25. Feb 2012
 
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#5

AW: Strings und Ansistrings, Nullterminiert?

  Alt 24. Feb 2012, 20:33
Sorry, meine vorherige Antwort sollte garnicht so "böse" rüberkommen wie es jetzt aussieht xD.

Jop Forumprofil wird geupdated.
Also ich benutze Delphi RAD Studio XE.

Also wie ich schon ansprach, muss ich einen String in einen AnsiString umwandeln.
Dachte es reicht, wenn ich einfach
Code:
Text := AnsiString(Edit1.Text);
schreibe.

Denn das habe ich versucht aber es geht nicht.
Das ich den Pointer falsch gesetzt habe schließe ich mal aus, da ja wie gesagt alles wunderbar funktioniert, wenn ich folgendes schreibe:

Code:
Text := Edit1.Text + #0;


Hier also mein Code mit UpdateResource:

Code:
function AddString(text,delimiter : string) : Boolean;
var
  hUpdateRes : THandle;
  lpResLock : ^string;

begin

  lpResLock := @text;

  hUpdateRes := BeginUpdateResource('Ausgabe.exe', False);
  if hUpdateRes = 0 then
  showmessage('Could not open file');

  result := UpdateResource(hUpdateRes, RT_String, PChar(delimiter), 0, PChar(text), succ(length(text))*sizeof(char));
  EndUpdateResource(hUpdateRes, false);

end;

Und hier mein Ausruf:

Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
    AddString(DoXOr(AnsiString(Edit1.Text), 1000), 'TEXT1');
end;
DoXOr ist einfach nur eine kleine XOr verschlüsselung.


Wie gesagt, wenn ich die Funktion so aufrufe funktioniert es wunderbar:

Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
    AddString(DoXOr(Edit1.Text + #0), 1000), 'TEXT1');
end;


Edit:
Aber ich habe doch einen String, den ich in einen AnsiString wandeln muss.

Code:
AddString(DoXOr(AnsiString(Edit1.Text), 1000), 'TEXT1');
funktioniert also nicht so einfach ?



PS: Was heißt gecastet? xD Konvertiert?
  Mit Zitat antworten Zitat
 


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 06:22 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 by Thomas Breitkreuz