Autor Beitrag
DonManfred
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 148
Erhaltene Danke: 2

Windows 7
Delphi XE3 Pro + HTML5Builder
BeitragVerfasst: Di 23.03.10 12:49 
Ich brauche in meinem Programm die folgende Funktion um Texte umzuwandeln, die die über eine fileimport-funktion von David.fx gescannt und per email gesendet wird.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
function dosascii(AText:string):string;
const MaxLength = 16384;
var PText : PChar;
begin
  PText:=StrAlloc(MaxLength);
  StrPCopy(PText,AText);
  {$IFDEF WIN32}
  CharToOEM(PText,PText); {32Bit}
  {$ELSE}
  AnsiToOEM(PText,PText); {16Bit}
  {$ENDIF}
  Result:=StrPas(PText);
  StrDispose(PText);
end;


Ich habe letztens einen Compilierversuch (genaugenommen hunderte :D) mit Delphi2010 unternommen und auch schon Diverse Problemstellen von String auf AnsiString umgestellt, mit Delphi2010 inkompatible Komponenten ausgetauscht usw...

Bei der Funktion hier komme ich jedoch nicht weiter. Hat jemand eine Routine die das gleiche macht und mit Delphi 2010 kompatibel ist?

PS: Aktuell habe ich wieder Delphi 2006 im einsatz weil mein chef neue funktionen braucht... Aber im laufe des Tages (spätestens morgen) möchte ich wieder zur Umstellung fortschreiten um das Projekt (bzw die Projekte) in Zukunft mit 2010 weiter entwickeln zu können.

Für Hinweise bin ich dankbar und ich hoffe auch, die richtige Sparte hier im forum gefunden zu haben.

->KEIN CROSSPOST VORHANDEN<-

_________________
Gruss Manfred
DonManfred Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 148
Erhaltene Danke: 2

Windows 7
Delphi XE3 Pro + HTML5Builder
BeitragVerfasst: Do 25.03.10 07:52 
*push*

_________________
Gruss Manfred
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Do 25.03.10 17:25 
anstatt string mal ansistring versuchen
DonManfred Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 148
Erhaltene Danke: 2

Windows 7
Delphi XE3 Pro + HTML5Builder
BeitragVerfasst: Do 25.03.10 17:48 
Habe ich versucht. Die Funktion will da aber scheinbar keinen ansiString. Fehlermeldung würde ich jetzt gerne nennen aber ich bin ja, erneut, wieder bei D2006, da ich für diese Funktion noch keinen Ersatz gefunden habe. Alles andere konnte ich mit aktualisierten Komponenten oder austausch durch Standard-Komponente hinbekommen. Aber diese Umwandlung nach "OEM" bekomme ich nicht aktualisiert.

Aktuell heisst das für mich; mit Delphi 2006 weitermachen bis ich einen Ersatz gefunden habe. :-/

_________________
Gruss Manfred
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Fr 26.03.10 00:22 
Was funktioniert denn nicht?
Schon probiert ansistrings zu verwenden und chartooema() aufzurufen?

ohne fehler kann man den nicht beheben...
für unicode/widechar geht das nicht inplace.
Grüner
Hält's aus hier
Beiträge: 3

WinXP, Windows 7, Windows 2003 R2, Windows 2008 R2
Delphi 2009, Delphi Prism/c# via Visual Studio 2008, MSSQL
BeitragVerfasst: Do 06.05.10 13:11 
Folgende Funktion verwende ich ab Delphi 2009 (aufgrund einer Typ-Änderung in der CharToOEM). Das sollte auch in Delphi 2010 funktionieren.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
uses Windows,.......

function Uml(AStr: string):string;
var ans:ansistring;
begin
  setlength(ans,length(astr)+1);
  chartooem(pchar(astr),PAnsiChar(ans));
  result:=ans
end;


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt