Seite 1 von 3

PB5.30 geht.... PB5.50 bringt Fehler !

Verfasst: 22.11.2016 12:24
von Then
Hallo, habe ein Programm zur Steuerung meiner Lichtanlage (Weihnachtsbeleuchtung am Haus :D ) geschrieben und lese WAV Dateien ein, welche dann per Zeitachse grafisch dargestellt werden und da kann ich dann die Lichteffekte mit steuern. Unter 5.30 läuft alles bestens, habe nun auf 5.50 geuppt und nu kommen Fehler in folgendem Stück.... :

Code: Alles auswählen

If ReadFile(0,wav_datei$ )
    riff$="" 
    For i=1 To 4
     riff$+Chr(ReadCharacter(0))
    Next
    gr=ReadLong(0)
    wave$=""
    For i=1 To 4
     wave$+Chr(ReadCharacter(0))
    Next
    fmt$=""
    For i=1 To 4
     fmt$+Chr(ReadCharacter(0))
    Next
    fmt_length=ReadLong(0)
    format_tag=ReadWord(0)
    channels=ReadWord(0)
    sample_rate=ReadLong(0)
    bytes_per_second=ReadLong(0)
    block_align=ReadWord(0)
    bits_per_sample=ReadWord(0)
    dat$=""
    For i=1 To 4
     dat$+Chr(ReadCharacter(0))
    Next
    data_length=ReadLong(0)
    *buffer=AllocateMemory(data_length)
    ReadData(0, *buffer, data_length)
    CloseFile(0)  
   EndIf 
Ist das nur bei mir so ??

Re: PB5.30 geht.... PB5.50 bringt Fehler !

Verfasst: 22.11.2016 12:26
von RSBasic
Was für einen Fehler bekommst du?

Re: PB5.30 geht.... PB5.50 bringt Fehler !

Verfasst: 22.11.2016 12:33
von Then
Die Data_Length ist = 0

Code: Alles auswählen

Line: 157 - AllocateMemory(): Can´t allocate a memory block of size ().

Re: PB5.30 geht.... PB5.50 bringt Fehler !

Verfasst: 22.11.2016 12:47
von grapy
Unicode!?

Re: PB5.30 geht.... PB5.50 bringt Fehler !

Verfasst: 22.11.2016 12:54
von Then
Wat ?? :o

Also wenn ich diesen Code in PB 5.50 einfüge und eine Wavedatei lade kommt ein Fehler !

Selber Code in PB 5.30 funktioniert einwandfrei... :shock:

Ohne Erweiterungen etc...

Re: PB5.30 geht.... PB5.50 bringt Fehler !

Verfasst: 22.11.2016 13:07
von RSBasic
Er meint, ob du dieselben Compiler-Einstellungen verwendest wie in 5.30.
Wenn du in 5.30 die Unicode-Einstellung aktiviert hast, dann musst du sie in 5.50 ebenfalls aktivieren. Wenn du kein Unicode verwendest, dann musst du Unicode in 5.50 deaktivieren.

Re: PB5.30 geht.... PB5.50 bringt Fehler !

Verfasst: 22.11.2016 13:22
von Then
nöööö..... nix UNICODE

frisch installiertes PB 5.30 in neues Verzeichnis : geht !
frisch installiertes PB 5.50 in neues Verzeichnis : geht nicht !

nix umgestellt oder so. Geht denn der Code bei Euch ??

Re: PB5.30 geht.... PB5.50 bringt Fehler !

Verfasst: 22.11.2016 13:23
von Bisonte
RSBasic hat geschrieben:...Wenn du kein Unicode verwendest, dann musst du Unicode in 5.50 deaktivieren.
Psssst. RSBasic .... Versuch das mal :mrgreen:

Aber um das Problem mal zu beschreiben :

Wenn Du mal in PB5.30 die Compileroption "Unicode Executable erstellen" anwählen würdest, würde das unter 5.30 auch nicht mehr funktionieren!

Du versuchst aus dem Speicher (in dem Fall ein File) Unicode Zeichen einzulesen. Ein ASCII Character ist definitiv 1 Byte... womit dein Programm funktioniert.
Unter Unicode sind die Zeichen grösser als 1 Byte, daher klappt das ganze nicht mehr.

Als Tipp sieh dir nochmal ReadCharacter() in der Hilfe an. Besonders das Flag!

Re: PB5.30 geht.... PB5.50 bringt Fehler !

Verfasst: 22.11.2016 13:23
von ts-soft
RSBasic hat geschrieben:Wenn du in 5.30 die Unicode-Einstellung aktiviert hast, dann musst du sie in 5.50 ebenfalls aktivieren.
Unicode ist immer in 5.50 aktiviert! :wink:

Re: PB5.30 geht.... PB5.50 bringt Fehler !

Verfasst: 22.11.2016 13:26
von grapy
eben, drum sollte das dann so aussehen: ReadCharacter(0 ,#PB_Ascii)