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, 5645 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
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...