Seite 1 von 3

Kleine Ansammlung an Anfänger-Fragen (gelöst)

Verfasst: 12.04.2006 20:44
von PureBaser
Hi Leute,

ich fange mal ohne Umscheife an:

1. Wie kriege ich PB dazu, dass ein Byte den Wertebereich von 0 bis 255 statt den normalen (-128) - (+127) bekommt?

2. Sind in der Konsole gemäß der Hilfe wirklich keine deutschen Umlaute möglich? Vielleicht gehts mit der Ascii-Tabelle?

3. Was muss ich schreiben, damit mein Konsolenprogramm jederzeit mit der Escape-Taste beendet wird, außer CloseConsole() natürlich.

4. Die letzte und wohl kniffligste Frage:
Nehmen wir an ich habe 5 Prodezuren. Und alle Prodezuren besitzen den gleichen Anfangscode und den gleichen Endcode, "nur" eben die Mitte ist anders. Geht es auch anders? Evtl. Prodezur in Prodezur?

Code: Alles auswählen

Procedure Pro1()
PrintN("Anfang")
PrintN("Inhalt A")
PrintN("Ende")
EndProcedure

Procedure Pro2()
PrintN("Anfang")
PrintN("Inhalt B")
PrintN("Ende")
EndProcedure

Procedure Pro3()
PrintN("Anfang")
PrintN("Inhalt B")
PrintN("Ende")
EndProcedure
Thx!

P.S: Kann erst Freitag antworten

Verfasst: 12.04.2006 20:57
von ZeHa
1. Gar nicht, außer wenn es unsigned bytes mittlerweile geben sollte (hab die 4.0 Beta noch nicht so richtig erforscht)

2. In der Standard-7-Bit-ASCII-Tabelle gibt's keine Umlaute, aber in der erweiterten. Du kannst z.B. das große "Ä" per Chr(142) anzeigen. Am besten schreibst Du Dir eine PrintN()-Funktion, die vorher alle Umlaute in die entsprechenden anderen Codes umwandelt, dann müßte es klappen.

3. Gute Frage, nur leider hab ich darauf keine gute Antwort :mrgreen:

4. Die letzte und wohl einfachste Frage :mrgreen: wenn die Teile exakt übereinstimmen und es keine Komplikationen gibt, dann machst Du in der Tat Prozeduren in Prozeduren. Sprich, Du rufst von der Prozedur aus die beiden anderen auf, z.B.

Code: Alles auswählen

Procedure Anfang()
  PrintN("Anfang")
EndProcedure

Procedure Ende()
  PrintN("Ende")
EndProcedure

Procedure Pro1()
  Anfang()
  PrintN("Inhalt A")
  Ende()
EndProcedure

Procedure Pro2()
  Anfang()
  PrintN("Inhalt B")
  Ende()
EndProcedure

Procedure Pro3()
  Anfang()
  PrintN("Inhalt C")
  Ende()
EndProcedure

Verfasst: 12.04.2006 21:00
von Kaeru Gaman
1. (Var.b & $FF)

Verfasst: 12.04.2006 21:02
von edel
Seit PB 4 gibt es "char" . Mit 3.94 reicht "b.b & $ff"

Verfasst: 12.04.2006 21:09
von ts-soft
PureBaser hat geschrieben:Hi Leute,

ich fange mal ohne Umscheife an:

1. Wie kriege ich PB dazu, dass ein Byte den Wertebereich von 0 bis 255 statt den normalen (-128) - (+127) bekommt?

Code: Alles auswählen

b.b = 200
Debug StrU(b, #Byte) 
PureBaser hat geschrieben: 2. Sind in der Konsole gemäß der Hilfe wirklich keine deutschen Umlaute möglich? Vielleicht gehts mit der Ascii-Tabelle?

Code: Alles auswählen

Procedure.s OEM2Char(Text.s)
  OemToChar_(Text, Text)
  ProcedureReturn Text
EndProcedure

Procedure.s Char2OEM(Text.s)
  CharToOem_(Text, Text)
  ProcedureReturn Text
EndProcedure

Verfasst: 12.04.2006 21:11
von Tafkadasom2k5
Hi!
Zu 5:

Da PB AFAIK keine richtig objektorientierte Sprache ist, und auch wohl nicht so schnell werden wird, geht das nur, wie Zeha schon beschrieb.
Eine "komfortable" Möglichkeit, wie die Vererbung von Klassen-Variablen, Interfaces, Konstruktoren etc., (wie in Java) habe ich auch noch nicht gefunden...

Gr33tz
Tafkadasom2k5

Verfasst: 14.04.2006 20:19
von PureBaser
Danke an allen für die Hilfe!

@Ts-Soft:
Ich kapier deinen zweiten Code nicht ganz, scheint nicht so zu funktionieren ?! :(

Verfasst: 14.04.2006 20:27
von ts-soft
PureBaser hat geschrieben:Danke an allen für die Hilfe!

@Ts-Soft:
Ich kapier deinen zweiten Code nicht ganz, scheint nicht so zu funktionieren ?! :(

Code: Alles auswählen

Procedure.s OEM2Char(Text.s)
  OemToChar_(Text, Text)
  ProcedureReturn Text
EndProcedure

Procedure.s Char2OEM(Text.s)
  CharToOem_(Text, Text)
  ProcedureReturn Text
EndProcedure

OpenConsole()
PrintN(Char2OEM("ÄÖÜ"))
Input()
Funzt nicht wenn die IDE im UTF-8 Modus läuft!

Verfasst: 14.04.2006 20:37
von PureBaser
Danke!!!

Verfasst: 14.04.2006 21:03
von mk-soft
@Tafkadasom2k5

ich hoffe doch das Purebasic nicht OOP wird!!!

FF :wink: