OpenConsole(), importierte Funktionen und Unicode

Für allgemeine Fragen zur Programmierung mit PureBasic.
nueh
Beiträge: 12
Registriert: 12.05.2013 18:57
Wohnort: Bremen

OpenConsole(), importierte Funktionen und Unicode

Beitrag von nueh »

Ja, ja, ich weiß. Viele Themen auf einmal...

Eigentlich versuche ich, ein Passwort von der Konsole einzulesen, ohne dass es angezeigt wird. Also so, wie Linux und Mac OS X das machen. Da Inkey() und RawKey() auf Mac OS X nicht funktionieren, möchte ich entweder getpass() oder readpassphrase() benutzen.
Und da beginnen die Eigentümlichkeiten...

Das erste Problem ist, dass die Abfrage nur funktioniert, wenn ich OpenConsole() nach der importierten Funktion aufrufe.
Das funktioniert:

Code: Alles auswählen

ImportC ""
  getpass(prompt)
EndImport

*passw = getpass("Password? ")

passw.s = PeekS(*passw)

OpenConsole()
PrintN(passw)
Das nicht:

Code: Alles auswählen

ImportC ""
  getpass(prompt)
EndImport

OpenConsole()

*passw = getpass("Password? ")

passw.s = PeekS(*passw)

PrintN(passw)
Das zweite Problem besteht darin, dass der Prompt nur vollständig angezeigt wird, wenn ich die Datei nicht als Unicode-Executable erstelle.

Kann mir jemand weiterhelfen?

Viele Grüße
Niklas
PureBasic 5.40 LTS (x64), MacBook Air, Mac OS X 10.11.1
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: OpenConsole(), importierte Funktionen und Unicode

Beitrag von ts-soft »

Hab leider keinen Mac, aber dies sollte helfen:

Code: Alles auswählen

ImportC ""
  getpass(prompt.p-Ascii)
EndImport
Also mit pseudotype arbeiten.

Code: Alles auswählen

*passw = getpass("Password? ")

passw.s = PeekS(*passw, -1, #PB_Ascii)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
nueh
Beiträge: 12
Registriert: 12.05.2013 18:57
Wohnort: Bremen

Re: OpenConsole(), importierte Funktionen und Unicode

Beitrag von nueh »

Danke, der Prompt wird vollständig angezeigt, aber das Passwort stimmt nicht, wenn man Umlaute benutzt. Habe da schon verschiedene Kombinationen (#PB_Ascii, #PB_Unicode, Pseudotype Ascii und Unicode) probiert.
Leider läuft meine Xubuntu-Installation gerade nicht.
Klappt das bei Dir?
PureBasic 5.40 LTS (x64), MacBook Air, Mac OS X 10.11.1
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: OpenConsole(), importierte Funktionen und Unicode

Beitrag von ts-soft »

Dann probiere mal, p-UTF8, bzw. #PB_UTF8, dass sollte dann passen.

Zum Testen, jetzt extra Linux booten, habe ich gerade keine Lust.

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
nueh
Beiträge: 12
Registriert: 12.05.2013 18:57
Wohnort: Bremen

Re: OpenConsole(), importierte Funktionen und Unicode

Beitrag von nueh »

Ja, das sieht unter Mac OS gut aus. Ubuntu wird gerade neu installiert, teste ich dann später.

Vielen Dank,
Niklas
PureBasic 5.40 LTS (x64), MacBook Air, Mac OS X 10.11.1
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: OpenConsole(), importierte Funktionen und Unicode

Beitrag von ts-soft »

Unter Linux kannste Dir merken, das benötigt fast immer Strings im UTF8-Format!
Dateien (txt o. ä.) für Linux auch meist im UFT8-Format und ohne BOM.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten