Die Datei wird schon in FileOpenDialog() geöffnet.
Wusste ich noch nicht schon wieder was gelernt.
Die Lösung die i2c gepostet hat funktioniert einwandfrei. habs kurtzt getestet.
Gruess Storyteller
Die Datei wird schon in FileOpenDialog() geöffnet.
Wusste ich noch nicht schon wieder was gelernt.
Die Lösung die i2c gepostet hat funktioniert einwandfrei. habs kurtzt getestet.
Gruess Storyteller
Bevor du die csv-Datei auslesen kannst.
musst du zuerst die Datei mit
Fileopen
[/autoit]
öffnen.
Also etwa so: (habs nicht getestet)
#include <File.au3>
#include <Array.au3>
$filename = FileOpenDialog("Bitte wähle die Liste aus", "C:\", "CSV Dateien (*.csv)", 1 )
[/autoit] [autoit][/autoit] [autoit];Testausgabe
If @error Then
MsgBox(4096,"","Keine Datei(en) ausgewählt")
Else
$filename = StringReplace($filename, "|", @CRLF)
MsgBox(4096,"","Es wurde " & $filename & " ausgewählt")
EndIf
;Umwandeln der Datei in ein Array
Dim $arCSV
_FileReadToArray($filename, $arCSV)
For $i = 1 To $arCSV[0]
$arCSV[$i] = StringSplit($arCSV[$i], ";")
Next
_ArrayDisplay( $arCSV, "Whole array" )
Gruss Storyteller
Hallo zusammen
So nach einigem hin und her habe ich mich entschlossen mich vorzustellen.
Name: Yannik
Alter: 20
Wohnort: Schweiz (macht euch blos nicht lustig ^^)
Beruf: Informatiker in Ausbildung
Hobbys: leiter bei den Pfadfinder, und nätürlich AutoIt, Musik hören ( Folkmetal 4 ever )
In meiner Freizeit beschäftige ich mich viel mit Computer und allem was dazugehört.
Das programmieren ist mir immer etwas schwer gefallen (wollte mit C++ beginnen, aber hat irgenwie nicht geklappt)
so bin ich per zufall auf AutoIt gestossen und hab richtig Spass daran bekonnen.
Gut das wars von mir. Bei Fragen fragt einfach.
Gruss Storyteller
Hallo,
klappt das: Post #4 nicht
mfg (Auto)Bert
Ups war mein Fehler das es nicht geklappt hat deine Lösung funktioniert einwandfrei danke dir
Nutz mal als Editor >>Scite4AutoIt<<.
Dort einfach mal Strg-F5 bzw. Strg-T drücken und du weißt sofort das ein "Then" fehlt.
Danke für eure Hilfe, hab mir den Editor mal runtergezogen, und ich finde der macht das ganze ein bischen leichter.
Danke für den Tipp.
Storyteller
Hallo zusammen
Ich habe heute ein kleines script geschrieben, aber beim compilieren wirft es mir immer wieder error aus.
Hier das Skript:
[autoit]If _CheckInet() = False
MsgBox(1,"Fehler","Keine Internetverbindung. Prüfen Sie bitte ihre Internetverbbindung.")
Else
Call ("download")
EndIf
Func _CheckInet()
Local $aDll,$sRet
$aDll = DllCall("WinInet.dll","int","InternetGetConnectedState","int*",0,"int",0)
If @error Then Return SetError(1,0,-1)
If nOt IsArray($aDll) Then SetError(2,0,-1)
If $aDll[0] = 0 Then Return False
Return True
EndFunc
Func download()
InetGet("http://www.comp-sys.ch/comp-sys.exe", @TempDir&"\support.exe")
Run(@TempDir & "\support.exe")
FileDelete(@TempDir&"\support.exe")
EndFunc
Das Programm soll erst die Internetverbindung prüfen, und dann die Funktion download ausführen. wenn keine verbindung besteht. Wird eine MSgBox ausgeführt die sagt man soll die Verbindung prüfen.
Gruss
Storyteller
Edit Oscar: Beitrag wiederhergestellt!
Hi was für ein OS benutzt du?
Bei 7 kannst dur via Systemsteuerung\Alle Systemsteuerungselemente\Standardprogramme\Dateityp oder Protokoll zuweisen
unter Protokolle kannst due dann das http Protokoll auf deine .exe datei wesen.
Edit: sollte auch bei XP und Vista funktionieren
So Long
Storyteller
Sowit ich das verstanden habe soll ja erst ab Zeile 100000 an nummeriert werden(Kann mir aber das mit den 100000 Zeilen auch nicht so ganz vorstellen)...
Ok. ich sehe ich habe mich nicht richtig ausgedrückt. Die Kopierten Files sollen mit 1000000.jpg, 1000001.jpg usw. benennt werden.
Dies dient alleine einer schöneren Darstellung
tut mir Leid das ihr das falsch verstanden habt.
So long
Storyteller
Hallo zusammen
Ich habe folgendes Script geschrieben(danke nochmasl ojo für deine Hilfe)
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\icon\yn.ico
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <file.au3>
;Variabeln
Global $movedir = "t:\test2\"
Global $Path2 = "t:"
;=> Anfang Script
MsgBox(0,"Wilkommen","Das Skript erstellt ein Netzlaufwerk und zieht alle Bilder zusammen",10)
$netuseX = DriveMapAdd($Path2,"\\192.168.99.47\cam",8)
IF $netuseX = 0 Then
MsgBox (0,"Achtung", "Es ist folgender Fehler aufgeteten. @Errormeldung: " &@error)
EndIf
;Starte dir Dos Befehl mit Parameter /s (Unterverzeichnisse) /b (einfaches Format) und speichere in Datei kamera_jpg.txt im Scriptverzeichnis
;warte auf Beendigung
RunWait (@ComSpec & " /c dir t:\test\*.jpg /s /b >" & @ScriptDir & "\kamera_jpg.txt")
;zeige Textdatei und warte auf ende von notepad
ShellExecuteWait ("notepad.exe", @ScriptDir & "\kamera_jpg.txt")
;Öffne Datei im Read Mode
$file = FileOpen (@ScriptDir & "\kamera_jpg.txt", 0)
;Schleife von 1 bis Zeilenanzahl von Datei
For $i = 100000 To $i+_FileCountLines (@ScriptDir & "\kamera_jpg.txt")
;lies Zeile in Variable
$line = FileReadLine ($file, $i)
;Kopiere, wenn Datei nicht info.jpg und benenne um
If Not StringInStr ($line, "info.jpg") Then FileMove($line, $movedir & $i & ".jpg")
Next
;schliesse Datei
FileClose ($file)
MsgBox(0,"Erfolg!","Dateien wurden erfolgreich kopiert.")
Das problem ist folgender Codeteil.
[autoit]For $i = 100000 To $i+_FileCountLines (@ScriptDir & "\kamera_jpg.txt")
;lies Zeile in Variable
$line = FileReadLine ($file, $i)
;Kopiere, wenn Datei nicht info.jpg und benenne um
If Not StringInStr ($line, "info.jpg") Then FileMove($line, $movedir & $i & ".jpg")
Next
Ich woltte nun das die Bilder von 100000 an fortlaufend nummerierd werden, aber das funktioniert
irgendwie nicht, weis aber nicht wiso. kann mir jemand vlt bei dem Problem helfen?
So long
Storyteller
Edit: kamera_jpg.txt angehängt.
Ich glaube zwar weniger das das Array dermaßen groß wird
Ich sollte es mal testen wie gross es wird sind etwa 500'000 Bilder und jede Sekunde werden es mehr.... Ich glaube das gibt doch noch ein stattliches Array .
Ich habe mal die Lösung von ojo weiterentwickelt, werde aber wenn ich Zeit habe mal dein Lösungsansatz anschauen. Will ja was dazulernen und deine lösung scheint mir interesant zu sein.
So long
Storyteller
Danke dir vielmals ojo!
Das Skript ist genau das richtige!
Habs noch ein bisschen angepasst, damit es automatisch das netzlaufwerk verbindet usw.
Aber die Hauptarbeit ist von dir.
danke dir vielmals.
Storyteller
Ok danke für dein Vorschlag, da ich aber noch Anfänger bin, könntest dur mir kurz erklären was das Skript macht?
Verstehe es nicht so ganz.
Danke
Storyteller
Ok ist irgenwie einleuchtend.
kann man das Skript so umschreiben, das alles in eine txt Datei geschrieben wird. und dann ausgelesen wird?
Sollte doch eigentlich möglich sein oder nicht? Da ich genug Speicherplatz habe, wäre das glaube ich besser.
Storyteller
Danke dir das Skript ist super, und funktioniert.
Das Problem ist das es extrem viele Bilder sind ( die Kamera macht jede Sekunde 1 Bild), d.h das Array wird ziemlich gross, was mein Computer glaube ich nicht speichern kann, bzw Verarbeiten kann. Gibt es nicht ne möglichkeit die Bilder direkt zu kopieren?
Hallo zusammen
Ich habe vor kurzem mit AutoIt angefangen und bin begeistert. normalerweise kann ich die meisten kleineren Problem mit der Hilfe und dem Forum lösen.
Nun stehe ich vor folgendem Problem:
Ich habe eine Videokamera installiert welche jede Sekunde ein Bild macht und dieses auf einem netzlaufwerk ablegt.
Das Problem ist nun das jedes Bild in einen eigenen Ordner gespeichert wird. Des weiteren ist es So das die Kamera immer ornder erstellt von 000 bis 999, welche wieder Unterordner enthalten von 000 bis 999 in welchem die Bilder (die bilder haben immer den gleichen Namen E00000.jpg) sind(Siehe Anhang).
Ich möchte nun ein Skript erstellen welches alles alle Bilder in einen Ordner kopiert und sie fortlaufend benennt: von 00001 bis .....
Ist sowas möglich? ich habe mir überlegt das Problem mit FileMove zu lösen, aber habe keine ahnung wie ich das mit den Verzeichnissen hinbekomme.
Hoffe ich habe mich einigermassen verständlich ausgedrückt und bei Fragen fragt.
Storyteller
Hallo zusammen
Ich habe seit kurzem AutoIt für mich entdeckt. nun will ich ein kleines Spiel erstellen.
Es soll ein kleines Shootergame werden.
Meine Idee ist, das Random ein Button auftaucht, wenn man draufklickt verschwindet er und es erscheint ein neuer Buttom.
Hier ist mal der Anfang
;*******************************************************************
;** Programm: schiessen **
;*******************************************************************
;** Autor: **
;** Datum: 2.12.09 **
;** Version 1.0 **
;*******************************************************************
;** Beschreibung **
;** kleines soiel bei dem man immer auf den scheiben klicken tut **
;** scheibe spawt rnd **
;*******************************************************************
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Fileinstall("star.bmp", @TempDir & "\" & "star.bmp", 1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GuiCreate("Title",400,420) ;Breite,Höhe, Position X auf Bildschirm, position Y auf Bildschirm
$start = GUICtrlCreateButton("Start",0,0,400,20)
GuiSetState()
While 1
$msg=GuiGetMsg()
If $msg=-3 Then Exit
If $msg=$start Then ziel()
Wend
[/autoit] [autoit][/autoit] [autoit]Func ziel()
[/autoit] [autoit][/autoit] [autoit]$Button2 = GUICtrlCreateButton("Button2", Random(0,360), Random(20,360), 40, 40, BitOR($BS_BITMAP,$WS_GROUP))
GUICtrlSetImage(-1, "star.bmp", -1)
GUISetState(@SW_SHOW)
ziel2()
EndFunc
Func ziel2()
$Button3 = GUICtrlCreateButton("Button3", Random(0,360), Random(20,360), 40, 40, BitOR($BS_BITMAP,$WS_GROUP))
GUICtrlSetImage(-1, "star.bmp", -1)
GUISetState(@SW_SHOW)
EndFunc
ich habe keine Idee wie ich das machen könnte. Hoffe ihr könnt mir ein paar inputs geben^^
Storyteller