Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Unterscheiden zwischen Zahlen und Buchstaben

Mitglied: Calim3ro

Calim3ro (Level 1) - Jetzt verbinden

03.06.2014, aktualisiert 10.06.2014, 1279 Aufrufe, 6 Kommentare

Hallo zusammen

Ich habe eine Textdatei mit folgendem Inhalt:

Salzburg 123456
1234567 Berlin
2345678 Hamburg
3456789 Wien
4567890 Koeln
Hamburg 2345678

Nun möchte ich von der ersten und letzten Zeile die Position 1-7 als String ausgeben, sofern diese numerisch sind. (prüfung auf reine Zahlenfolge notwendig)

Wie müsste so ein Script in VB aussehen,? Besten Dank für eure Bemühungen schon mal im Voraus.

Bei Fragen einfach nachfragen.

Gruss Nickpicker
Mitglied: colinardo
03.06.2014, aktualisiert um 17:07 Uhr
Hallo Nickpicker,
also wenn ich dich richtig verstanden habe etwa so:
01.
'Pfad der Datei 
02.
datei = "c:\DeineDatei.txt" 
03.
 
04.
Set fso = CreateObject("Scripting.Filesystemobject") 
05.
Set regex = CreateObject("vbscript.regexp") 
06.
 
07.
'nur Zahlen erlauben 
08.
regex.Pattern = "^\d+$" 
09.
 
10.
' Textfile in ein Array bestehend aus den einzelnen Zeilen einlesen 
11.
arrLines = Split(fso.OpenTextFile(datei).ReadAll(),vbNewLine,-1,1) 
12.
 
13.
'Teste die erste Zeile der Textdatei 
14.
If regex.Test(Left(arrLines(0),7)) Then 
15.
	MsgBox Left(arrLines(0),7) 
16.
End If 
17.
 
18.
'Teste die letzte Zeile der Textdatei 
19.
If regex.Test(Left(arrLines(UBound(arrLines)),7)) Then 
20.
	MsgBox Left(arrLines(UBound(arrLines)),7) 
21.
End If
Grüße Uwe
Bitte warten ..
Mitglied: Calim3ro
03.06.2014 um 16:39 Uhr
Hallo Uwe

Besten Dank für deine schnelle Rückmeldung.
Ich habe dein Skript kopiert und den Pfad zur Datei angepasst. Als String (MsgBox) erhalte ich jedoch jeweils nur "4567890", das erwartete "1234567" bleibt jedoch aus.

Bin leider kein Hirsch in VBS und konnte den Fehler nicht selber finden.
Kannst du dir das nochmal anschauen?

Gruss Nickpicker
Bitte warten ..
Mitglied: colinardo
03.06.2014, aktualisiert um 17:04 Uhr
Dann ist mir noch nicht klar was du willst, ich bin jetzt davon ausgegangen das wenn in Zeile 1 und der letzten Zeile z.B. anstatt des Wortes Salzburg oder Hamburg dort eine eine Zahlenfolge an der Zeichenposition 1-7 steht diese gemeldet werden soll... Also und diesem Beispiel garnichts ...

Salzburg 123456 < hier steht an Position 1-7 nur Text (keine Meldung)
1234567 Berlin
2345678 Hamburg
3456789 Wien
4567890 Koeln
Hamburg 2345678 < hier steht an Position 1-7 nur Text (keine Meldung)

in diesem Beispiel dann nur die 2345678

Salzburg 123456 < hier steht an Position 1-7 nur Text (keine Meldung)
1234567 Berlin
2345678 Hamburg
3456789 Wien
4567890 Koeln
2345678 blabla < hier steht an Position 1-7 eine Zahlenfolge also melde es

oder habe ich da was missverstanden ?
Bitte warten ..
Mitglied: Calim3ro
04.06.2014 um 13:55 Uhr
Sorry, da habe ich mich wohl etwas unklar ausgedrückt.

Es sollte in jedem Fall zwei Zahlen ausgegeben werden.
Und zwar von der ersten numerischen Zeile (Pos 1-7) und letzte Zeile, welche Position 1-7 aus numerischen Werten bestehen.

Im Beispiel müsse also 1234567 & 4567890 ausgegeben werden, da Salzburg 123456 auf Pos. 1-7 nicht rein numerisch ist.
Somit muss diese Zeile ignoriert werden und zur nächsten Zeile wechseln. Das gleiche von untern her, Hamburg 2345678 ist auf Pos 1-7 nicht numerisch, also sollte Pos. 1-7 der Zeile darüber ausgegeben werden, sofern diese numerisch ist.

Hoffe konnte die Unklarheiten beseitigen.
Gar nicht einfach, sowas zu erklären.

Besten Dank für deine Hilfe.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 04.06.2014, aktualisiert 10.06.2014
Hoffe konnte die Unklarheiten beseitigen.
Ah OK jetzt alles klar
01.
dim strWert1, strWert2, regex, fso, arrLines, datei 
02.
datei = "c:\DeineDatei.txt" 
03.
Set fso = CreateObject("Scripting.Filesystemobject") 
04.
Set regex = CreateObject("vbscript.regexp") 
05.
regex.Pattern = "^\d+$" 
06.
arrLines = Split(fso.OpenTextFile(datei).ReadAll(),vbNewLine,-1,1) 
07.
For i = 0 To UBound(arrLines) 
08.
	If regex.Test(Left(arrLines(i),7)) Then 
09.
		strWert1 = Left(arrLines(i),7) 
10.
		Exit For 
11.
	End If 
12.
Next 
13.
For i = UBound(arrLines) To 0 Step -1 
14.
	If regex.Test(Left(arrLines(i),7)) Then 
15.
		strWert2 = Left(arrLines(i),7) 
16.
		Exit For 
17.
	End If 
18.
Next 
19.
msgbox "Wert1: " & strWert1 & " / Wert2: " & strWert2  
20.
set fso = Nothing 
21.
set regex = Nothing
das ganze ließe sich auch noch weiter vereinfachen indem man komplett über ein einzelnes Regex-Pattern und Groupmatches geht (wollte aber das du das obige noch halbwegs verstehst):
01.
dim strWert1, strWert2, regex, fso, content, datei 
02.
datei = "c:\DeineDatei.txt" 
03.
Set fso = CreateObject("Scripting.Filesystemobject") 
04.
Set regex = CreateObject("vbscript.regexp") 
05.
regex.Multiline = True 
06.
regex.Pattern = "^(\d{7})[\s\S]*^(\d{7})" 
07.
content = fso.OpenTextFile(datei).ReadAll() 
08.
Set matches = regex.Execute(content) 
09.
If matches.Count > 0 Then 
10.
	strWert1 = matches(0).Submatches(0) 
11.
        strWert2 = matches(0).Submatches(1) 
12.
	MsgBox "Erster Wert: " & strWert1 & vbNewLine & "Zweiter Wert: " & strWert2 
13.
End If 
14.
set fso = Nothing 
15.
set regex = Nothing 
16.
set matches = Nothing
Grüße Uwe
Bitte warten ..
Mitglied: colinardo
LÖSUNG 10.06.2014, aktualisiert um 18:23 Uhr
Wenns das dann war, den Beitrag bitte noch als gelöst markieren, merci.

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Buchstaben in Zahlen umwandeln
gelöst Frage von KawoosheBatch & Shell8 Kommentare

Hallo, ich wollte mal fragen ob man Buchstaben (groß und klein schreibung egal) in ihre dazugehörige zahl umwandeln kann( ...

PHP

Textfeld nur bestimmte Buchstaben und Zahlen zulassen

gelöst Frage von vServerPHP5 Kommentare

Hi, wie kann ich hier nur bestimmte Zeichen wie A-Z, a-z, 0-9 erlauben und keine Sonderzeichen wie - ( ...

VB for Applications

In einer Textzeile (String) die Anzahl eines vorgekommenen Buchstaben zählen

gelöst Frage von windelterroristVB for Applications5 Kommentare

Hallo! Ich bin noch neu im Bereich VBA und bin mir deshalb noch etwas unsicher in dieser Programmiersprache. Würde ...

Windows Server

Effektive Berechtigungen unterscheiden sich auf Server und Client

Frage von 151KGWindows Server2 Kommentare

Ich habe einen Fileserver 2012 und Windows 7 sowie Windows 10 Clients Ich habe sowohl die Freigabe- als auch ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 23 StundenWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 1 TagHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...

Windows Netzwerk
Backup über WAN
Frage von petereWindows Netzwerk11 Kommentare

Hallo, ich muss aus einem entfernten WAN (synchrone 1Gbit) Daten sichern. Dabei handelt es sich sowohl um wenige große ...