Wer weiß... Ich würde sowieso IniRead und IniWrite verwenden.
soll da keine ini datei werden sondern eine reine textdatei
Wer weiß... Ich würde sowieso IniRead und IniWrite verwenden.
soll da keine ini datei werden sondern eine reine textdatei
Kannst du die Datei mal anhängen?
Das geht schon
Kannst du die Datei mal anhängen?
Das geht schon
datei anhängen wieso?
die datei wir doch wenn sie nicht vorliegt automatisch erstellt:
hier mal das komplette script
#include <FTPEx.au3>
#include <GUIConstantsEx.au3>
#include <Array.au3>
#include <StaticConstants.au3>
HauptGUI()
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg(1)
Select
Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $hHauptGUI
Exit
Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $hnebenGUI
GUIDelete($hnebenGUI)
Case $msg[0] = $Date
nebenGUI()
EndSelect
WEnd
Func nebenGUI()
$aDate = StringSplit(GUICtrlRead($Date),"/")
Global $hnebenGUI = GUICreate(GUICtrlRead($Date),200,200)
Global $nebenGUIInput = GUICtrlCreateInput("Gibt hier deine Stundenzahl ein!",20,50,160,20)
Global $Speichern_Button = GUICtrlCreateButton("Speichern", 80, 150)
local $oneclick = 1
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_PRIMARYDOWN
If $oneclick Then
$cInfo = GUIGetCursorInfo()
If IsArray($cInfo) Then
If $cInfo[4] = $nebenGUIInput Then
GUICtrlSetData($nebenGUIInput,"")
$oneclick = 0
EndIf
EndIf
EndIf
Case $GUI_EVENT_CLOSE
If MsgBox(4+32, "Beenden", "Willst du ohne zu Speichern Beenden") = 6 Then
GUIDelete($hnebenGUI)
ExitLoop
EndIf
Case $Speichern_Button
If Not FileExists (@ScriptDir & "\Zeiten.txt")Then
MsgBox(48,"Nicht gefunden!", "Zeitendatei wurde nicht gefunden es wird nun eine Datei angelegt")
$notexist = FileOpen(@ScriptDir & "\Zeiten.txt",1)
FileClose($notexist)
EndIf
$readfile = FileOpen(@ScriptDir & "\Zeiten.txt",0)
If $readfile = -1 Then
MsgBox(48,"Fehler","Zeitendatei konnte nicht richtig geöffnet werden bitte wiederholen sie den Vorgang")
Else
ConsoleWrite(GUICtrlRead($Date) & @CRLF)
ConsoleWrite(FileRead($readfile) & @CRLF)
$sreadfile = FileRead($readfile)
$sDate = GUICtrlRead($Date)
If StringInStr($sreadfile,$sDate,1) = 0 Then
FileClose($readfile)
$writefile = FileOpen(@ScriptDir & "\Zeiten.txt",1)
FileWrite($writefile,GUICtrlRead($Date) & " : " & GUICtrlRead($nebenGUIInput))
MsgBox(48,"Fertig","Zeit wurde gespeichert")
FileClose($writefile)
EndIf
EndIf
EndSwitch
WEnd
EndFunc
Func HauptGUI()
Global $hHauptGUI = GUICreate("CM Zeitenspeichertool",400,400)
Global $Date = GUICtrlCreateMonthCal ( "test", 0, 0 , 300 , 300)
GUISetState()
EndFunc
Damit man sich für den einfachen Stringabgleich nicht durch dein Skript wühlen muss?
Die Stelle im Script die für das anhängen der Stunden zuständig ist, ist fehlerhaft.
In der Datei steht bei mir nur Müll nach ausführen deines Scripts
Damit man sich für den einfachen Stringabgleich nicht durch dein Skript wühlen muss?
muss man doch nicht. EInfach das script starten auf einen tag klicken ne Zahl eingeben und schon hat man di datei wo dann ein datum und ein : und die eingegeben zahl drinn steht
Die Stelle im Script die für das anhängen der Stunden zuständig ist, ist fehlerhaft.
In der Datei steht bei mir nur Müll nach ausführen deines Scripts
und was für müll bei mir steht da ein sauberer string
Zitatund was für müll bei mir steht da ein sauberer string
Bei mir nicht :D. Da ist nicht mal klar getrennt.
Hier mal meine vereinfachte Version (funktioniert
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$sFile = @ScriptDir & "\Date.txt"
[/autoit] [autoit][/autoit] [autoit]If Not FileExists($sFile) Then
$hFile = FileOpen($sFile, 1)
FileClose($hFile)
EndIf
$Date = GUICreate("Datumsauswahl", 209, 220, 192, 124)
$DatePick = GUICtrlCreateMonthCal("2010/04/07", 8, 8, 191, 164)
$Save = GUICtrlCreateButton("Speichern", 64, 184, 75, 25)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Save
$sDate = GUICtrlRead($DatePick)
$iHours = InputBox("Stunden", "Gib die Stunden ein: ")
If Number($iHours) <> "" Then
$sText = FileRead($sFile)
If StringInStr($sText, $sDate & " : " & $iHours) = 0 Then FileWrite($sFile, $sDate & " : " & $iHours & @CRLF)
EndIf
EndSwitch
WEnd
Vielleicht kannst du ja was übernehmen.