Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Emailadresse und Namen aus txt.file auslesen

Frage Entwicklung Batch & Shell

Mitglied: elyzer

elyzer (Level 1) - Jetzt verbinden

06.06.2009, aktualisiert 02:38 Uhr, 5652 Aufrufe, 12 Kommentare

Hallo, ich bin neu hier und stehe vor nem (hoffentlich) kleinem Problem.

Ich möchte aus dem Quelltext, einer php-seite, den Namen mit zugehöriger Emailadresse, auslesen und in einer txt Datei speichern.
Das Problem an dem ich hänge ist, das manche "Teilnehmer" keine Emailadresse haben.
Bei meiner seitherigen Lösung bzw. meinem anfänglichen Lösungsansatzes erhalte ich somit eine verschiebung.

Im Prinzip sieht der Quelltext (der als .txt File vorliegt), an interesanter Stelle, so aus:
<tr>
<td>
<a id="hashomefolder"
href="http://www.blbla.de/Members/maxmuster;>" Muster, Max</a>

</td>
<td>
<a href="mailto:mmax@blbla.de">
<img src="http://www.blbla.de/mail_icon.gif" alt="" title="" longdesc="" height="11" width="13" />
</a>
</td>
<td class="room">
<span>Z005/Z006</span>
</td>
<td class="phone1">
<span>06393/zu-575</span>
</td>
</tr>
<td>
<a id="hashomefolder"
href="http://www.blbla.de/Members/maxmoritz;>" Moritz, Max</a
</td>
<td>
</td>
<td class="room">
</td>
<td class="phone1">

</td>
</tr>
<tr>
<td>
Wie schaffe ich es, das z.B. "find" mir den Namen (oder auch die komplette Zeile -ist egal) zurückgibt,
aber nur,
wenn "mailto:" ZWISCHEN den einzelnen funden/href steht.

Vieleicht ist es ja ganz einfach und ich steh nur auf dem Schlauch.

Vielen Dank schon mal im Vorraus.

PS. Kann auch gerne in vbs sein .Die php Seite selbst wäre auch verfügbar falls dies in php einfacher zu regeln wäre.
Mitglied: 76109
06.06.2009 um 08:37 Uhr
Hat sich erledigt.
Bitte warten ..
Mitglied: elyzer
06.06.2009 um 13:39 Uhr
Hallo,
sorry aber, was hat sich erledigt?
Bitte warten ..
Mitglied: 76109
06.06.2009 um 14:02 Uhr
Hallo elyzer!

Tja, es hat sich insofern erledigt, weil ein paar Tags fehlen, aber die sind nicht so wichtig.

Gruß Dieter
Bitte warten ..
Mitglied: 76109
06.06.2009 um 14:59 Uhr
Hallo elyzer!

Falls das mit Batch nix wird, hier mal ein VB-Script (Test.Vbs).

Die Pfadangaben für Eingabe- und Ausgabe-Datei entsprechend anpassen.

01.
Option Explicit 
02.
 
03.
Const ePath = "F:\VB-Scripts\Test\Eingabe.txt" 
04.
Const aPath = "F:\VB-Scripts\Test\Ausgabe.txt" 
05.
 
06.
Const Msg0 = "Fehler" 
07.
Const Msg1 = "Datei nicht gefunden!" 
08.
Const Msg2 = "Datei ist fehlerhaft!" 
09.
 
10.
Dim Fso, File, Member, Members, Name, Mail, x 
11.
     
12.
On Error Resume Next 
13.
     
14.
Set Fso = CreateObject("Scripting.FileSystemObject") 
15.
 
16.
Members = Split(Fso.OpenTextFile(ePath).ReadAll, "Members") 
17.
 
18.
If Err Then MsgBox Msg1, vbExclamation, Msg0: WScript.Quit 1 
19.
     
20.
Set File = Fso.CreateTextFile(aPath) 
21.
 
22.
For Each Member In Members 
23.
    x = Split(Member, "</a", 2) 
24.
    If UBound(x) = 1 Then 
25.
        Name = Trim(Split(x(0), """>", 2)(1)) 
26.
        x = Split(Member, "mailto:", 2) 
27.
        If UBound(x) = 1 Then Mail = vbTab & Trim(Split(x(1), """>", 2)(0)) Else Mail = "" 
28.
        If Err = 0 Then File.WriteLine Name & Mail Else MsgBox Msg2, vbExclamation, Msg0: WScript.Quit 1 
29.
    End If 
30.
Next 
31.
 
32.
WScript.Quit 0
Gruß Dieter

[Edit] geändert [/Edit]
Bitte warten ..
Mitglied: elyzer
06.06.2009 um 15:21 Uhr
Hallo Dieter,

danke schon mal für deine Mühen.

Ich bekomm den Msg2 Fehler, Datei fehlerhaft.

Im Ergebnis sehe ich dann, das er die Zeilen mit "name" kopiert.

Das Problem, es gibt weder User noch id.

Das script müsste auf das wort " member" reagieren, das im link vorkommt.

Leider kann ich nicht den kompletten Quelltext hier reinstellen.


Gruß elyzer
Bitte warten ..
Mitglied: 76109
06.06.2009 um 15:29 Uhr
Hallo elyzer!

Tja, das Script ist anhand Deines Beispiels geschrieben.

Das Script sucht nach "<a id=" Name muss das Format ";Name</a" haben und Mail das Format "mailto:Adresse">"

Wenn die Original-Datei anders ist, funktionierts logischerweise auch nicht.

Gruß Dieter

PS Gegebnenfalls in Deinem Beispiel einen präzisen Text angeben. Von Link reicht "http" aber der Rest muss stimmen.
Bitte warten ..
Mitglied: elyzer
06.06.2009 um 15:41 Uhr
Hallo Dieter,

den Ausschnitt, den ich gepostet habe, stimmt schon, nur hat der Quelltext natürich noch anderen Inhalt, wo es dann wahrscheinlich hängt.

Habe auch schon <a id= mit href vertauscht, dann bleibt das Ergebnis ganz leer.
Die Fehlermeldung bleibt die gleiche.

Gruß elyzer
Bitte warten ..
Mitglied: 76109
06.06.2009 um 15:46 Uhr
Hallo elyzer!

Mit href funktioniert es nicht. Versuch mal "<a id=" ersetzen durch "Members"

Und gib mir das präzise Ende des Member-Links an. Der endet sicherlich nicht mit ";"

Gruß Dieter
Bitte warten ..
Mitglied: elyzer
06.06.2009 um 19:05 Uhr
Hallo Dieter,
bei "members" geschiest das selbe, wie mit <a id=, allso scheint das Problem woanders zu liegen.

Ein korrekter Userlink und Emaillink: (natürlich stimmt blbla.de nicht, falls dies auch eine Rolle spielt.)
01.
Quellcode 
02.
<a id="hashomefolder" 
03.
                  href="http://www.blbla.de/Members/dirkschatt">Schatt, Dirk</a> 
04.
 
05.
 
06.
Anderer Code.... 
07.
 
08.
<a href="mailto:schatt@blbla.de"> 
09.
                  <img src="http://www.blbla.de/mail_icon.gif" alt="" title="" longdesc="" height="11" width="13" /> 
10.
               </a> 
11.
 
12.
 
Gruß elyzer
Bitte warten ..
Mitglied: 76109
06.06.2009 um 19:14 Uhr
Hallo elyzer!

Logisch. Ich hätte natürlich raten können, aber im Raten bin ich nicht so Gut. Daher richte ich mich immer nach den Angaben

Ersetzte in Deinem Code Zeile 25 durch:
01.
 Name = Trim(Split(x(0), """>", 2)(1)) 
Gruß Dieter

PS Der Code weiter oben wurde aktualisiert
Bitte warten ..
Mitglied: elyzer
06.06.2009 um 19:48 Uhr
Hallo Dieter!!

Hammerhart, vielen Dank.

Darf man hier gei. sagen?

Es funktioniert einwandfrei, zwar noch ein wenig Quelltext der oben steht,
aber das lässt sich ohne Probleme, mit dem bisherigen script, rausschneiden.

Ist auch genau richtig formatiert, da es ein outlook Adressbuch werden soll.

Damit hat sich mein Thread erledigt.
Bitte warten ..
Mitglied: 76109
06.06.2009 um 19:55 Uhr
Hallo elyzer!

Prima

Gruß Dieter
Bitte warten ..
Neuester Wissensbeitrag
Microsoft Office

MS Office Excel - Formel wird angezeigt, aber nicht berechneter Wert!

Tipp von holli.zimmi zum Thema Microsoft Office ...

Ähnliche Inhalte
PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Entwicklung
gelöst Get ip from external txt file and use in vbscript (5)

Frage von thankusomuch zum Thema Entwicklung ...

Batch & Shell
gelöst Mittels Batch eine Uhrzeit aus einer .txt auslesen und verabeiten (4)

Frage von Beatzler zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Hyper-V
gelöst Reiner Hyper- V Server oder lieber Rolle (21)

Frage von Winuser zum Thema Hyper-V ...

SAN, NAS, DAS
gelöst Synology Version 6.1 Probleme (18)

Frage von Hendrik2586 zum Thema SAN, NAS, DAS ...

Router & Routing
gelöst Firtzbox VPN nicht alle Ports erreichbar? (15)

Frage von atarjono zum Thema Router & Routing ...

Router & Routing
gelöst IP Kamera für drei unabhängige Netzwerke (15)

Frage von ProfessorZ zum Thema Router & Routing ...