Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] z plikiem ini


Rekomendowane odpowiedzi

Opublikowano

Mam taki kod:

 

 

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Test", 287, 312, 192, 124)
$username = GUICtrlCreateInput("Nazwa użytkownika", 8, 48, 265, 21)
$Label1 = GUICtrlCreateLabel("Wprowadź nazwę użytkownika:", 24, 16, 234, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Wprowadź hasło:", 80, 80, 132, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$haslo = GUICtrlCreateInput("Haslo", 8, 112, 265, 21,BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
GUISetState(@SW_SHOW)
$Label3 = GUICtrlCreateLabel("Minimalna ilosć", 8, 152, 186, 17)
GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
$Label4 = GUICtrlCreateLabel("Maksymalna ilosć", 8, 192, 198, 17)
GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
Global $ilMIN = GUICtrlCreateInput("", 208, 152, 65, 21)
Global $ilMAX = GUICtrlCreateInput("", 208, 192, 65, 21)
$start = GUICtrlCreateButton("START", 8, 224, 265, 81)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $start
test()
EndSwitch
WEnd

Func test()
If Not FileExists("C:\Windows\Ustawienia.ini") Then
_FileCreate("C:\Windows\Ustawienia.ini")
IniWriteSection("C:\Windows\Ustawienia.ini","Ustawienia","Nazwa użytkownika="&@LF&"Hasło="&@LF&"Folder=")
EndIf ;Do tego momentu działa poprawnie
If $username = "" Then
MsgBox(0,"Błąd!","Wprowadź nazwe użytkownika!")
Elseif $haslo = "" Then
MsgBox(0,"Błąd!","Wprowadź hasło!")
ElseIf $ilMIN = "" Then
$ilMIN = 10
ElseIf $ilMAX = "" Then
$ilMAX = 20
EndIf

$ilMINt=IsInt($ilMIN) ;sprawdza czy $ilMIN jest intem
$ilMAXt=IsInt($ilMAX) ;tak jak wyżej
If $ilMINt = 1 Then
MsgBox(0,"",$ilMIN) ;Jak wpisze literę/cyfrę/zostawie puste do inputa to według kompilatora jest to int i wyświetla liczbę 9 -.-
Else
MsgBox(0,"Błąd!","Minimalna ilość musi być liczbą!")
EndIf
If $ilMAXt = 1 Then
MsgBox(0,"",$ilMAX) ;Jak wpisze literę/cyfrę/zostawie puste do inputa to według kompilatora jest to int i wyświetla liczbę 10 -.-
Else
MsgBox(0,"Błąd!","Maksymalna ilość musi być liczbą!")
EndIf
IniWrite("C:\Windows\Ustawienia.ini","Ustawienia","Nazwa użytkownika",$username)
IniWrite("C:\Windows\Ustawienia.ini","Ustawienia","Hasło",$haslo)

$folder = Int(Random($ilMIN,$ilMAX))
IniWrite("C:\Windows\Ustawienia.ini","Ustawienia","Folder",$folder)
Exit
EndFunc

 

 

Dałem do spoilera bo w CODE sie polskie znaki na jakieś randomowe cyferki i znaczki poprzestawiały i sie odczytać nie dało :s

 

W czym problem? Otóż.

Niezależnie co wpisze do inputów, dzieją się cuda.

MsgBoxy z "Błąd" w tytule nigdy sie nie wyświetliły o.O

MsgBox(0,"",$ilMIN) iMsgBox(0,"",$ilMAX) zawsze dają wyniki 9 i 10...

A teraz drugi problem:
Do pliku ini w kluczu "nazwa użytkownika zapisuje sie liczba 3, w haśle liczba 6 a folder 0.

Dlaczego tak się dzieje?

Opublikowano

Zamiast bezmyślnie wyświetlać inputa w msg może warto było by go najpierw odczytać ?

 

Poczytaj o GUICtrlRead

 

Mudisz jeszcze odczytac $Label .

 

 

 

 

#include
#include
#include
#include
#include
#include
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Test", 287, 312, 192, 124)
$username = GUICtrlCreateInput("Nazwa użytkownika", 8, 48, 265, 21)
$Label1 = GUICtrlCreateLabel("Wprowadź nazwę użytkownika:", 24, 16, 234, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Wprowadź hasło:", 80, 80, 132, 24)
GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif")
$haslo = GUICtrlCreateInput("Haslo", 8, 112, 265, 21,BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
GUISetState(@SW_SHOW)
$Label3 = GUICtrlCreateLabel("Minimalna ilosć", 8, 152, 186, 17)
GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
$Label4 = GUICtrlCreateLabel("Maksymalna ilosć", 8, 192, 198, 17)
GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
Global $ilMIN = GUICtrlCreateInput("", 208, 152, 65, 21)
Global $ilMAX = GUICtrlCreateInput("", 208, 192, 65, 21)
$start = GUICtrlCreateButton("START", 8, 224, 265, 81)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $start
test()
EndSwitch
WEnd

Func test()
If Not FileExists("C:\Windows\Ustawienia.ini") Then
_FileCreate("C:\Windows\Ustawienia.ini")
IniWriteSection("C:\Windows\Ustawienia.ini","Ustawienia","Nazwa użytkownika="&@LF&"Hasło="&@LF&"Folder=")
EndIf ;Do tego momentu działa poprawnie
If $username = "" Then
MsgBox(0,"Błąd!","Wprowadź nazwe użytkownika!")
Elseif $haslo = "" Then
MsgBox(0,"Błąd!","Wprowadź hasło!")
ElseIf $ilMIN = "" Then
$ilMIN = 10
ElseIf $ilMAX = "" Then
$ilMAX = 20
EndIf

$ilMINt=IsInt($ilMIN) ;sprawdza czy $ilMIN jest intem
$ilMAXt=IsInt($ilMAX) ;tak jak wyżej
If $ilMINt = 1 Then
MsgBox(0,"",GUICtrlRead($ilMIN)) ;Jak wpisze literę/cyfrę/zostawie puste do inputa to według kompilatora jest to int i wyświetla liczbę 9 -.-
Else
MsgBox(0,"Błąd!","Minimalna ilość musi być liczbą!")
EndIf
If $ilMAXt = 1 Then
MsgBox(0,"",GUICtrlRead($ilMAX)) ;Jak wpisze literę/cyfrę/zostawie puste do inputa to według kompilatora jest to int i wyświetla liczbę 10 -.-
Else
MsgBox(0,"Błąd!","Maksymalna ilość musi być liczbą!")
EndIf
IniWrite("C:\Windows\Ustawienia.ini","Ustawienia","Nazwa użytkownika",$username)
IniWrite("C:\Windows\Ustawienia.ini","Ustawienia","Hasło",$haslo)

$folder = Int(Random($ilMIN,$ilMAX))
IniWrite("C:\Windows\Ustawienia.ini","Ustawienia","Folder",$folder)
Exit
EndFunc

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...