Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Base64.pas mit Delphi 2009 kompatibel machen (https://www.delphipraxis.net/132056-base64-pas-mit-delphi-2009-kompatibel-machen.html)

TheMiller 5. Apr 2009 13:01


Base64.pas mit Delphi 2009 kompatibel machen
 
Hallo!

Habe jetzt mal Delphi 2009 hier und musste feststellen, dass die Base64.pas nicht mehr funktioniert. Nach der Suche habe ich diesen Thread gefunden:

http://www.delphipraxis.net/internal...ht=base64+2009

Doch aus dem wird mir nicht so klar, was ich machen muss, damit sie wieder funktioniert.

Meine Fehlermeldungen lauten:

Zitat:

Zitat von Compiler von Delphi 2009
[DCC Fehler] Base64.pas(120): E2250 Es gibt keine überladene Version von 'Base64Encode', die man mit diesen Argumenten aufrufen kann
[DCC Warnung] Base64.pas(120): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'AnsiString'
[DCC Fehler] Base64.pas(125): E2250 Es gibt keine überladene Version von 'Base64Decode', die man mit diesen Argumenten aufrufen kann
[DCC Warnung] Base64.pas(125): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'AnsiString'
[DCC Fehler] Base64.pas(501): E2010 Inkompatible Typen: 'Char' und 'AnsiChar'
[DCC Fehler] Base64.pas(535): E2010 Inkompatible Typen: 'Char' und 'AnsiChar'
[DCC Fehler] Base64.pas(81): E2065 Ungenügende Forward- oder External-Deklaration: 'Base64Encode'
[DCC Fehler] Base64.pas(83): E2065 Ungenügende Forward- oder External-Deklaration: 'Base64Decode'

Vielen Dank im Voraus

jaenicke 5. Apr 2009 13:06

Re: Base64.pas mit Delphi 2009 kompatibel machen
 
Am besten versuch erst einmal alle überall Char durch AnsiChar, String durch AnsiString und PChar durch PAnsiChar zu ersetzen. Das behebt meistens schon die meisten Fehler. Dadurch wird dann zwar auch Unicode nicht mehr benutzt, aber es sollte erst einmal wieder gehen.

Die Warnungen wegen den impliziten Umwandlungen usw. sind nicht schlimm, solange du Unicode nicht verwendest. Wenn du Unicode verwenden willst, dann musst du die Unit komplett darauf umschreiben.

// EDIT:
Und in dem Link steht ja noch, dass du StrAlloc durch AnsiStrAlloc ersetzen musst.

TheMiller 5. Apr 2009 13:53

Re: Base64.pas mit Delphi 2009 kompatibel machen
 
Besten Dank! Hat funktioniert!

Gibt's irgendwo Informationen oder ein kleines Tutorial was folgende Punkte bezüglich der Umstellung auf Delphi 2009 umfasst?
  • Wie benutze ich Unicode
  • Was muss ich bei der Umstellung beachten?
  • Welche Fehlermeldungen können auftreten?
  • Was bedeuten die Fehlermeldungen (zB: Implizierte String-Umwandlung (mit pot. Datenverlust) von 'Short-String' zu 'String')
  • Sonstige Neuerungen

Das wäre echt cool!

mjustin 5. Apr 2009 16:05

Re: Base64.pas mit Delphi 2009 kompatibel machen
 
Zitat:

Zitat von DJ-SPM
Habe jetzt mal Delphi 2009 hier und musste feststellen, dass die Base64.pas nicht mehr funktioniert.

Indy 10 (in Delphi 2009 enthalten) enthält auch Klassen zur Base64-Kodierung/Dekodierung. Bietet Base64.pas noch besondere Features?

Cheers,

Bernhard Geyer 5. Apr 2009 19:45

Re: Base64.pas mit Delphi 2009 kompatibel machen
 
Zitat:

Zitat von DJ-SPM
Gibt's irgendwo Informationen oder ein kleines Tutorial was folgende Punkte bezüglich der Umstellung auf Delphi 2009 umfasst?

Schau mal in den Blogs von Nick. Dort gibt es ein paar Beiträge zum Theme Unicode(String).

jaenicke 5. Apr 2009 20:14

Re: Base64.pas mit Delphi 2009 kompatibel machen
 
Zitat:

Zitat von DJ-SPM
Wie benutze ich Unicode

Ein String ist in Delphi 2009 ein UnicodeString, bis Delphi 2007 wurde der Datentyp String auf AnsiString gemappt. Deshalb kann man z.B. mit AnsiString usw. statt String explizit die alten Strings nutzen.
  • Datentyp String, PChar, Char:
    Delphi 2009: UnicodeString, PWideChar, WideChar (normalerweise 2 Byte pro Zeichen, Unicode, normalerweise UTF-16)
    Delphi <= 2007: AnsiString, PAnsiChar, AnsiChar (1 Byte pro Zeichen, kein Unicode)
  • Datentyp ShortString (var xy: String[100] z.B.)
    Delphi bis inkl. 2009: ShortString
    Da hat sich nichts geändert, ein ShortString ist ein ShortString, enthält AnsiChars und ist nicht unicodefähig.

Zitat:

Zitat von DJ-SPM
Was muss ich bei der Umstellung beachten?

Das steht in diesem der genannten Blogs:
http://edn.embarcadero.com/article/38693

Zitat:

Zitat von DJ-SPM
Was bedeuten die Fehlermeldungen (zB: Implizierte String-Umwandlung (mit pot. Datenverlust) von 'Short-String' zu 'String')

Dass bei der Umwandlung z.B. eines UnicodeStrings in einen AnsiString natürlich ein Unicodezeichen mit 2 Byte nicht verlustfrei in das eine Byte eines nicht unicodefähigen AnsiChars passt. ;-)

Zitat:

Zitat von DJ-SPM
Sonstige Neuerungen

Schau dir z.B. dieses Video an:
http://edn.embarcadero.com/article/38441


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz