Est-ce que l'un d'entre vous peut me dire pourquoi ce code ne fonctionne pas :
Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Nom du projet : Read Null Terminated String
; Nom du fichier : Read Write Null Terminated String.pb
; Version du fichier : 3.0.0
; Programmation : En cours
; Programmé par : Guimauve
; Date : 08-02-2012
; Mise à jour : 08-02-2012
; Code PureBasic : 4.60
; Plateforme : Windows, Linux, MacOS X
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Procedure.s WriteNullTerminatedString(FileID, String.s, P_Flag.b = #PB_Ascii)
If P_Flag = #PB_Ascii
WriteString(FileID, String, #PB_Ascii)
WriteAsciiCharacter(FileID, 0)
ElseIf P_Flag = #PB_UTF8
WriteString(FileID, String, #PB_UTF8)
WriteAsciiCharacter(FileID, 0)
Else
WriteString(FileID, String, #PB_Unicode)
WriteUnicodeCharacter(FileID, 0)
EndIf
EndProcedure
Procedure.s ReadNullTerminatedString(FileID, P_Flag.b = #PB_Ascii)
If P_Flag = #PB_Ascii
Null_Terminated_String.s = ReadString(FileID, #PB_Ascii)
ElseIf P_Flag = #PB_UTF8
Null_Terminated_String = ReadString(FileID, #PB_UTF8)
Else
Null_Terminated_String = ReadString(FileID, #PB_Unicode)
EndIf
ProcedureReturn Null_Terminated_String
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< !!! WARNING - YOU ARE NOW IN A TESTING ZONE - WARNING !!! <<<<<
; <<<<< !!! WARNING - THIS CODE SHOULD BE COMMENTED - WARNING !!! <<<<<
; <<<<< !!! WARNING - BEFORE THE FINAL COMPILATION. - WARNING !!! <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
If CreateFile(0, "Test.bin")
WriteNullTerminatedString(0, FormatDate("A=%yyyy, M= %mm, J=%dd - %hh:%ii:%ss", Date()), #PB_Ascii)
WriteNullTerminatedString(0, "PureBasic 4.61 Beta 1", #PB_Ascii)
WriteNullTerminatedString(0, "FreeMat 4.0 (Similiaire à MatLab mais sans Simulink)", #PB_Ascii)
WriteNullTerminatedString(0, "Séance de lutte greco-romaine mixte (Le mixte ici est très important !!!!)", #PB_Ascii)
WriteNullTerminatedString(0, "PureBasic is the best programming language, period !", #PB_Ascii)
WriteNullTerminatedString(0, "Linux Mint 12 x64 + Gnome-Shell 1.0", #PB_Ascii)
WriteNullTerminatedString(0, "À È Ê É Î à è ê é î", #PB_Ascii)
CloseFile(0)
EndIf
If ReadFile(1, "Test.bin")
Debug ReadNullTerminatedString(1, #PB_Ascii)
Debug ReadNullTerminatedString(1, #PB_Ascii)
Debug ReadNullTerminatedString(1, #PB_Ascii)
Debug ReadNullTerminatedString(1, #PB_Ascii)
Debug ReadNullTerminatedString(1, #PB_Ascii)
Debug ReadNullTerminatedString(1, #PB_Ascii)
Debug ReadNullTerminatedString(1, #PB_Ascii)
CloseFile(1)
EndIf
; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< FIN DU FICHIER <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<
Alors que celui ci oui :A=2012, M= 02, J=15 - 01:17:46
PureBasic 4.61 Beta 1
FreeMat 4.0 (Similiaire à MatLab mais sans Simulink)
Séance de lutte greco-romaine mixte (Le mixte ici est tr�s important !!!!)
PureBasic is the best programming language, period !
Linux Mint 12 x64 + Gnome-Shell 1.0
à à à à à à � ê é î
Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Nom du projet : Nom du projet
; Nom du fichier : *.pb
; Version du fichier : 0.0.0
; Programmation : En cours
; Programmé par : Guimauve
; Date : 15-02-2012
; Mise à jour : 15-02-2012
; Code PureBasic : 4.50
; Plateforme : Windows, Linux, MacOS X
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Procedure.s WriteNullTerminatedString(FileID, String.s, P_Flag.b = #PB_Ascii)
If P_Flag = #PB_Ascii
WriteString(FileID, String, #PB_Ascii)
WriteAsciiCharacter(FileID, 0)
ElseIf P_Flag = #PB_UTF8
WriteString(FileID, String, #PB_UTF8)
WriteAsciiCharacter(FileID, 0)
Else
WriteString(FileID, String, #PB_Unicode)
WriteUnicodeCharacter(FileID, 0)
EndIf
EndProcedure
Procedure.s ReadNullTerminatedString(FileID, P_Flag.b = #PB_Ascii)
If P_Flag = #PB_Ascii
Null_Terminated_String.s = ReadString(FileID, #PB_Ascii)
ElseIf P_Flag = #PB_UTF8
Null_Terminated_String = ReadString(FileID, #PB_UTF8)
Else
Null_Terminated_String = ReadString(FileID, #PB_Unicode)
EndIf
ProcedureReturn Null_Terminated_String
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< !!! ATTENTION - CODE D'ESSAI !!! <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
If CreateFile(0, "Test.bin")
WriteNullTerminatedString(0, "à è ê î À È Ê É Î", #PB_Ascii)
WriteNullTerminatedString(0, "à è ê î À È Ê É Î", #PB_Ascii)
CloseFile(0)
EndIf
If ReadFile(1, "Test.bin")
Debug ReadNullTerminatedString(1, #PB_Ascii)
Debug ReadNullTerminatedString(1, #PB_Ascii)
CloseFile(1)
DeleteFile("Test.bin")
EndIf
; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< FIN DU FICHIER <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<
Dans les deux cas, le compilateur est en mode Unicode.à è ê î À È Ê É Î
à è ê î À È Ê É Î
Là je suis complètement largué.
A+
Guimauve