Du bist nicht angemeldet.

[ gelöst ] Ping aus CSV Datei

Kontrollzentrum

Spenden

Jeder Euro hilft uns, euch zu helfen.

Adsense

Downloads

Stabil: 3.3.8.1 (Q, H)
Stabil: 3.3.12.0 (Q, H)
Beta: 3.3.11.5 (Q, H)
SciTE: 4/5/2014 (Q, H)
Hilfe Deutsch: 12/23/2013 (Q)
Download: OrganizeIncludes (Q)
Stand: 02.06.2014 - 2:21 Uhr

Lieber Besucher, herzlich willkommen bei: AutoIt.de - Das deutsche AutoIt-Forum. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

  • »Schickedim« ist der Autor dieses Themas

Registrierungsdatum: 20. Februar 2012

  • Private Nachricht senden

1

Montag, 20. Februar 2012, 18:56

Ping aus CSV Datei

Hallo,
seit einiger Zeit schreibe ich mit Autoit kleine Scripte für Privat und für die Arbeit. Derzeit bin ich dran ein PingTool zu schreiben.

Vorhanden ist eine Datei mit der PC Zummer und die dazuhörige IP. Alles befindet sich in einer Exceltabelle. Mit der UDF von Excel ist es möglich ja die Datei im hintergrund laufen zulassen. Das ganze Script wird auf einen Server laufen, wo kein Excel drauf ist. Deswegen bin ich auf CSV datei umgesprungen.

Ich habe schon seit wochen sämtliche Foren durch und finde keine Lösung.

ping. csv (beispiele)

1;10.125.212.2
2;10.125.212.12
3;10.125.212.3

Ein Gui habe ich schon erstellt mit einem Feld wo die PC Nummer eingetragen werden kann.

wie kann ich die CSV datei am besten auslesen. Angedacht wäre es so:

Im gui die PC nummer eingeben, die IP wird aus der CSV gelesen und die IP wird angeping.Zudem gibt es dann noch Fehlder wo ich die dazugehörigen IP Drucker und den Router der sich dahinter befindet. Dies soll am Besten wieder als Tabelle im vorhandenden GUI angezeigt werden, Msgbox wäre natürlich auch suboptimal.

ich stehe volles Rohr auf dem Schlauch.

Das Buch habe ich gelesen, leider ist der Punkt mit dem Gui nicht geschrieben, da peethebee laut seinem Block zurzeit keine zeit hat.


Hat jemand einen Ansatz für mich? Leider habe ich das Script auf der Arbeit liegen sonst würde ich es per Anhang beifügen.


Lg Schickedim

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Schickedim« (26. Februar 2012, 18:34) aus folgendem Grund: GELÖST :-)


autoBert

Ersatz-SuFu

Registrierungsdatum: 14. Februar 2009

Wohnort: Baden-Württemberg

  • Private Nachricht senden

2

Montag, 20. Februar 2012, 20:34

Hallo Schickedim,

du loest am besten mit

AutoIt-Quellcode

1
_FileReadToArray
deine Datei in ein Array. Dieses Array gehst du dann Zeile für Zeile durch. Mit

AutoIt-Quellcode

1
StringSplit
kannst du die einzeln Zeilen dabei wiederum in ein Array spliten. Mit dem entsprechenden Feld (der IP) führst du danach einen

AutoIt-Quellcode

1
Ping
aus,

mfg autoBert

UEZ

AutoIt Lehrling im 5. Lehrjahr

Registrierungsdatum: 25. November 2008

Wohnort: Rhein-Main

  • Private Nachricht senden

3

Montag, 20. Februar 2012, 21:09

Hi Oynama Schickidim Schickidim,

vielleicht kannst du hieraus was gebrauchen: Check Online Status v0.97 Build 2011-11-27 Beta

Gruß,
UEZ

PS: Tarkan lässt Grüßen ;)
¯\_(ツ)_/¯

  Spoiler Spoiler


Funktionen: _GUICtrlMenu_CreateBitmap() v0.60 Build 2012-01-07 beta, _GUIImageList_AddBitmapEx() v0.80 Build 2011-11-05 Beta, nNumber v0.90 Build 2010-11-11 Beta, Process Info v0.35 Beta, File_Seeker v0.85 Build 2010-12-01 Beta, Get_Schtasks v0.90 build 2010-12-30 Beta, _WinAPI_SetWindowTitleIcon v0.96 Build 2012-06-03 Beta
GDI: GDI+ Beispiele, Visualization: Analog Meter, Plasma Variante, Screensaver, Rotating Letters, (einige mehr GDI+ Beispiele ), GDI+ Image Rotator and Saver Build 2009-12-23, GDI+ Rotating Cubes, GDI+ Zoomer, GDI+ Visualizer Oscilloscope Farbrausch Build 2010-09-08, GDI+ Pixel Text Effect Beta Build 2010-10-21, GDI+ Simple Clock build 2011-04-06, GDI+ Buchstaben Rotation, GDI+ Perfect Illusion Build 2011-06-02
Misc: Play Chip Sound from Memory, Simple Image Slideshow v1.0 Build 2011-04-30 Beta
Progs: SIC2 v2.0.1 Build 2012-02-24 Beta inkl. GUI, Integer<=>Binary Converter v1.0 Build 2011-09-19, Fussball Chronograph v1.4 Build 2010-03-09, AutoIt Windows Screenshooter v1.77 Build 2014-02-18, Tiny URL Downloader v0.96 Build 2011-01-24, Head - Tail v0.65 Build 2011-03-15 Beta, Check Ping Status v1.03 Build 2013-02-28 Beta, Uptime v0.76 Build 2011-12-13, AD Tools, ISO Creator v1.16 build 2012-09-11 beta, File to Base64 String Code Generator v1.16 Build 2014-06-05
Spiel: AUTOITEROIDS v1.019 Build 2012-07-30
UDF: Write Text on Bitmap.au3 v0.92 Build 2011-05-28 Beta, ArrayUnique v0.96 Build 2010-11-20 Beta, Get_Image_Info v0.80 Build 2011-05-03 Beta, Shuffle_Array v0.50 build 2011-05-24 beta

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »UEZ« (20. Februar 2012, 21:30)


  • »Schickedim« ist der Autor dieses Themas

Registrierungsdatum: 20. Februar 2012

  • Private Nachricht senden

4

Dienstag, 21. Februar 2012, 06:48

Guten Morgen.
du loest am besten mit

AutoIt-QuellcodeCode kopieren

AutoIt-Quellcode

1
_FileReadToArray


deine Datei in ein Array. Dieses Array gehst du dann Zeile für Zeile durch. Mit

AutoIt-QuellcodeCode kopieren

AutoIt-Quellcode

1
StringSplit


kannst du die einzeln Zeilen dabei wiederum in ein Array spliten. Mit dem entsprechenden Feld (der IP) führst du danach einen

AutoIt-QuellcodeCode kopieren

AutoIt-Quellcode

1
Ping


aus,

mfg autoBert
Erstmal Danke. Ich habe vergessen zuerwähnen, dass es etwa 3300 ips sind. und die gehen nicht von 1 bis x durch z.b. fehlt da 1-10 geht weiter mit 11 dann irrgentwann man mit 222 bis 9999. Ist es trotzdem möglich mit SplitArray nach dem ersten Parameter zu durchsuchen, weil ja nicht PC1 Zeile 1 enspricht.

Hi Oynama Schickidim Schickidim,

vielleicht kannst du hieraus was gebrauchen: Check Online Status v0.97 Build 2011-11-27 Beta

Gruß,
UEZ

PS: Tarkan lässt Grüßen ;)
Hallöle.
ich verstehe in der au3 nur spanisch :-D

Grüße zurück :-D http://www.youtube.com/watch?v=f9yqn8gVnII




Als anhang befindet sich die Beispiel Datei. Möglich mir ein beispiel zugeben?
»Schickedim« hat folgende Datei angehängt:
  • Filialen.txt (10,93 kB - 41 mal heruntergeladen - zuletzt: 13. Mai 2014, 22:01)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Schickedim« (21. Februar 2012, 06:54)


autoBert

Ersatz-SuFu

Registrierungsdatum: 14. Februar 2009

Wohnort: Baden-Württemberg

  • Private Nachricht senden

5

Dienstag, 21. Februar 2012, 07:40

Hallo Schickedim,

ja natürlich:

Zitat

StringSplit

Teilt einen String, abhängig von den/dem gewählten Trennzeichen (delimiters), in Stringfolgen auf und gibt diese in einem Array zurück
Quelle: dt. Hilfe


AutoIt-Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <Array.au3>
dim $aIpLines[4]

$aIpLines[1]="1;10.125.212.2"
$aIpLines[2]="5;10.125.212.12"
$aIpLines[3]="4;10.125.212.3"
$aIpLines[0]=3
_ArrayDisplay($aIpLines,"So sieht dein Array nach Einlesen aus")

for $i= 1 to $aIpLines[0]
    $aSplit = StringSplit($aIpLines[$i],";")
    _ArrayDisplay($aSplit,"So sueht das Split-Array für das " & $i & " Element von $aIPLines aus")
    ConsoleWrite("Computer: " & $aSplit[1] & " hat die IP: " & $aSplit[2] & @CRLF)
Next


mfg autoBert

chip

Poweruser

Registrierungsdatum: 8. Juni 2009

Beruf: Fachinformatiker

  • Private Nachricht senden

6

Dienstag, 21. Februar 2012, 08:27

Meinst das vielleicht so:

  Spoiler Spoiler

AutoIt-Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <Array.au3>
#include <File.au3>
Dim $ips
_FileReadToArray("ip.csv", $ips)

$pcnummer = InputBox("Ping", "PC-Nummer eingeben:")
$index = _ArraySearch($ips, $pcnummer & ";", 1, 0, 0, 1)
If @error Then
    MsgBox(0, "Ping", "PC ist nicht in der IP-Liste")
Else
    $ip = StringSplit($ips[$index], ";", 2)
    $ping = Ping($ips[$index])
    If @error = 0 Then
        MsgBox(0, "Ping", "Der PC hat in " & $ping & " Millisekunden geantwortet.")
    Else
        MsgBox(0, "Ping", "PC antwortet nicht.")
    EndIf
EndIf

  • »Schickedim« ist der Autor dieses Themas

Registrierungsdatum: 20. Februar 2012

  • Private Nachricht senden

7

Mittwoch, 22. Februar 2012, 06:42

Vielen dank.
So in etwa meinte ich das! Muss das nur noch bisschen umstellen bis das hinhaut. Derzeit bekomme ich noch ein paar fehler Meldungen. Falls ichs nicht hinbekomme, werde ich mich melden.


€dit:
Ich habe soweit jetzt fast alles fertig. Aber etwas funktioniert nicht.

  Spoiler Spoiler


AutoIt-Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
; bin mir nie sicher welche au3 ich brauche.
#include <GUIConstants.au3>
#include <ButtonConstants.au3>
#include <Constants.au3>
#include <Misc.au3>
#Include <File.au3>
#include <String.au3>
#include <Array.au3>

dim $ips
if Not _FileReadToArray("ips.csv", $ips) Then
MsgBox(4096, "Fehler", "Fehler beim Einlesen der Datei in das Array!" & @CRLF & "Fehlercode: " & @error)
    Exit
EndIf


GUICreate("Filiale Ping", 764, 93, 194, 288)
$flnr = GUICtrlCreateInput("", 112, 48, 97, 21)
GUICtrlSetLimit(-1, 4)
$router = GUICtrlCreateButton("Cisco Router", 0, 0, 89, 25, 0)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
 Case $GUI_EVENT_CLOSE
            Exit
        Case $router  
            _router ()  
    EndSwitch
WEnd

Func    _router () 
   
$index = _ArraySearch($ips, GUICtrlRead($flnr) & ";", 1, 0, 0, 1)
If @error Then
    MsgBox(0, "Ping", "Filiale nicht vorhanden")
Else
    $ip = StringSplit($ips[$index], ";", 2)
    Ping($ips[$index]&".130", 250)
If @error = 0 Then
        MsgBox(0, "Ping","Cisco Router ist Online.") ;"Cisco Router ist Online.")
    Else
        MsgBox(0, "Ping", "Cisco Router ist Offline.")
    EndIf
 EndIf
 EndFunc

ips.cvs
Filiale; IP
12;10.199.250
15;10.199.252
20;10.199.255


Der Router ist immer Offline und wenn ich kein Parametter eingebe bzw eine falsche, nicht vorhandende Filial nummer. Die Abfrage Filiale

Da es sich um einen Kunden hält sind das hier beispiel daten.

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Schickedim« (22. Februar 2012, 12:02)


autoBert

Ersatz-SuFu

Registrierungsdatum: 14. Februar 2009

Wohnort: Baden-Württemberg

  • Private Nachricht senden

8

Mittwoch, 22. Februar 2012, 17:22

Hallo Schickedim,

ändere Zeile 40 zu:

AutoIt-Quellcode

1
    Ping($ip[1]&".130", 250)


mfg autoBert

  • »Schickedim« ist der Autor dieses Themas

Registrierungsdatum: 20. Februar 2012

  • Private Nachricht senden

9

Sonntag, 26. Februar 2012, 18:33

Ich danke dir!

Habe das Thema auf gelöst gesetzt.

autoit.de Webutation