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 In Linkstruktur Sonderzeichen mit VB transformieren.

Mitglied: Fraenky

Fraenky (Level 1) - Jetzt verbinden

10.11.2007, aktualisiert 16.11.2007, 4922 Aufrufe, 11 Kommentare

Die bestehende Linkstruktur an bestehende Linkkonventionen bezüglich Sonderzeichen anpassen.

Hallo zusammen.
In diesem Schritt sollen jetzt also die Links, die auf die im vorigen Schritt umbenannten Dateien verweisen, mit Hilfe der im vorigen Script erstellten Umwandlungstabelle von Sonderzeichen befreit werden.
Zu anderen Zwecken hatte ich schon alle Texte, die auf diese jetzt frisch umbenannten Übersetzungsdateien verweisen, in einem einzigen Dokument zusammengefaßt, das Wir jetzt hier gut verwenden können, um die Aktion durchzuführen.
Festzuhalten ist, das Wir zwei verschiedene Arten von Text haben.
Einmal Text, in dem Sonderzeichen erlaubt sind. Das sind normaler Text und der Linktext, also der Text, auf den geklickt wird.
Nicht erlaubt sind Sonderzeichen in der Ordnerstruktur des Links sowie in der angelinkten Datei.
Also muß das Script nur die Bereiche bearbeiten, die den Link enthalten.
Desweiteren sollte das Script einen Arrey bereitstellen, in dem ich die nicht mit der Umwandlungstabelle erstellten Modifizierungen der Dateinamen bekannt machen kann nach folgendem Schema: Dateiname-mit-Sonderzeichen = Neuer-Dateiname-Manuell-erstellt, Dateiname2-mit-Sonderzeichen = Neuer-Dateiname2-Manuell-erstellt usw.
Dieses Arrey soll also alle Dateinamen enthalten, die von mir wegen der Dopplungsgefahr manuell umbenannt wurden.
Das Script soll also den Teil des Links(wenn ein Sonderzeichen enthalten ist), der die angelinkte Datei anspricht(im unteren Beispiel DateinamePerd%E3o), zuerst in dem Arrey mit dem Dateinamen links des = vergleichen. Wenn Treffer, mit dem rechten Teil des = ersetzen. Wenn kein Treffer, mit Hilfe der Umwandlungstabelle ersetzen.
Zuerst muß aber der linke Teil vom = im Arrey mit der schon entwickelten Sonderfunktion Konvert in html Sonderzeichendarstellung umgewandelt werden, damit der Vergleich funktionieren kann.
Wegen der geringen Anzahl der Ausnahmen kann ich aber die Dateinamen links des = im Arrey auch manuell im html Format angeben.
Falls im Pfad, also nicht in der angelinkten Datei, ein Sonderzeichen gefunden und ersetzt wird, soll dieser in eine Protokolldatei geschrieben werden, damit ich ihn manuell in meiner Ordnerstruktur anpassen kann.
Struktur der Links:
<a title="Titel"href="Pfad/DateinamePerd%E3o.php">Linktext</a>
Also sollen alle Operationen zwischen <a und <a/> durchgeführt werden.
Den Start stelle ich mir so vor, das, wie im vorigen Script, ich die Datei mit dem Text auf das Script ziehe, was ja viel komvortabler als der Aufruf über die Kommandozeile ist.
Wenn ich hier wieder fachmänische Hilfe finde, bringt mich das den letzten großen Schritt bezüglich der Sonderzeichenproblematik weiter.
Dank und Gruß
Fraenky
Mitglied: Fraenky
13.11.2007 um 12:53 Uhr
Hallo bastla.
Ok. Ich sehe es ein. Ohne Dich läuft hier in der Rubrik gar nichts mehr. Sorry.
Es währe wirklich sehr freundlich von Dir, wenn Du mit Deinem großen Wissen, das Du in 30 Jahren erworben hast, Uns auf so tolle, effiziente Art und Weise weiterhelfen könntest. Und weil ich ja weiß, das Du auf vielen Baustellen hilfreich zur Seite stehst, habe ich die Aufgabenstellung noch mal überdacht und eine Minimalanforderung entwickelt.
1. Die Überprüfung des Pfades auf Sonderzeichen kann wegfallen.
2. Das Arrey zur Bekanntmachung der manuell umbenannten Dateinamen kann notfalls auch wegfallen. Dann muß ich über Suchen und Ersetzen die Links finden, die auf die ca 20 manuell umnenannten Übersetzungsdateien verweisen und diese ändern.
Der Hauptteil der Arbeit währe dann immer noch vom Script geleistet.
Und weiter währe es doch schön, wenn der folgende Vierzeiler sich wieder mal bewahrheiten würde:
Hast Du Probleme am PC
Komm nach administrator.de
Du brauchst nicht mehr zu laufen
Hier werden Sie geholfen.
Gruß
Fraenky
Bitte warten ..
Mitglied: bastla
13.11.2007 um 14:16 Uhr
Hallo Fraenky!

Das trifft sich gut - habe kürzlich eine Baustelle abgeschlossen ...
1. Die Überprüfung des Pfades auf Sonderzeichen kann wegfallen.
Hier hätte ich eine manuelle Ersetzung vorweg vorgeschlagen (sowohl in den Ordnernamen des Dateisystems als auch im HTML-Dokument - in letzterem einfach per "Suchen/Ersetzen", da die Angabe des gesamten Pfades (alt und neu) - und damit eines langen Suchbegriffes - dafür sorgen sollte, dass tatsächlich nur der betreffende Pfad verändert wird und keine unerwünschten Ersetzungen in Dateinamen oder Texten stattfinden).

2. Das Array zur Bekanntmachung der manuell umbenannten Dateinamen kann notfalls auch wegfallen.
Schau'n mer mal ...
Noch zwei Fragen:
... in einem einzigen Dokument ...
Ist dieses Dokument als Linkliste strukturiert (ein Link je Zeile) oder kann zumindest davon ausgegangen werden, dass eine zeilenweise Bearbeitung möglich ist (da keine - im Quellcode - zeilenübergreifenden Links vorkommen)?

Also sollen alle Operationen zwischen <a und <a/> durchgeführt werden
Ich hätte eigentlich angenommen, dass nur die Dateinamen (oder ev -pfade) betroffen wären und daher nur den Bereich zwischen href=" und dem nächsten Anführungszeichen als relevant erachtet - oder sollten doch auch Titel und Linktext geändert werden?

Grüße
bastla
Bitte warten ..
Mitglied: Fraenky
13.11.2007 um 23:34 Uhr
Hallo bastla.
Schön, das Du wieder hier bist.
Das angesprochene Dokument kannst Du Dir als Liedtextsammlung vorstellen, die im zeilenweisen Wechsel zwischen zwei Sprachen vorliegt.
Die Links auf die weiter ausführenden Übersetzungsdateien(also auf die Dateien, die neu umbenannt wurden) können also beliebig auftauchen. Zwei, drei hintereinander in einer Zeile oder auch zeilenübergreifend.
Also vielleicht am besten in der nächsten Zeile nach dem Endmerkmal suchen(falls es nicht in der monentanen auftaucht), um den Arbeitsbereich zu separieren.
Mit <a </a> wollte ich den maximalen Einsatzbereich aufzeigen. Du mit dem klaren Blick des erfahrenen Programierers hast diesen genauer eingegrenzt, also zwischen href " und ".
Ein Sahnehäubchen währe es, wo Wir hier gerade sind, wenn das Script überprüfen würde, ob es Wörter in der Liedtextsammlung gibt, die dem Linktext entsprechen und nicht zwischen <a </a> und auch nicht zwischen <div class="silber"> und </div>(deutsche Übersetzung, für den Fall, das Wörter in beiden Sprachen existieren) stehen.
Dann müßte das Script die Linktexte zuerst bearbeiten, die die meisten Wörter beinhalten, damit nicht ein einzelnes Wort das mehrteilige verhindern kann, weil es schon verlinkt wurde.
Dank und Gruß
Fraenky
Bitte warten ..
Mitglied: bastla
15.11.2007 um 02:09 Uhr
Hallo Fraenky!

Für den folgenden Script-Entwurf werden die "SonderzeichenErsetzung.txt" aus dem vorherigen Schritt benötigt sowie eine "Ausnahmen.txt" zur Zuordnung der manuell zu ersetzenden Dateinamen nach folgendem Schema berücksichtigt:
01.
alter Dateiname=neuer Dateiname
Zwischen dem jeweiligen Dateinamen und dem "=" darf kein Leerzeichen stehen. Die Schreibweise des alten Dateinamens muss dabei der bereits im Dokument verwendeten entsprechen (es erfolgt vor der Ersetzung keine Konvertierung) und es wird ein davor stehender Pfad (mit "/" getrennt) sowie die Angabe des Dateityps (zB ".php") vorausgesetzt.

Falls keine oder eine leere "Ausnahmen.txt" vorgefunden wird, ist zu entscheiden, ob dennoch die Konvertierung (dann eben ausnahmslos aller Dateinamen und Pfade) erfolgen oder das Script abgebrochen werden soll.

Da auch in den Pfaden enthaltene Sonderzeichen umgewandelt würden, sollten diese bereits im Vorhinein per Suchen/Ersetzen behandelt worden sein.

01.
Const sSonder = "C:\Skripts\SonderzeichenErsetzung.txt"
02.
Const sAusnahmen = "C:\Skripts\Ausnahmen.txt"
03.

04.
Const sFileExtOld = ".bak"
05.

06.
Const sStart = "href=""" 'linke Begrenzung der zu konvertierenden Sequenz
07.
Const sEnd = """" 'rechte Begrenzung der zu konvertierenden Sequenz
08.

09.
lLenStart = Len(sStart)
10.

11.
If WScript.Arguments.Count = 0 Then
12.
	WScript.Echo "Datei mit umzubenennenden Links als Parameter uebergeben!"
13.
	WScript.Quit(1)
14.
End If
15.

16.
Set fso = CreateObject("Scripting.FileSystemObject")
17.
sFile = WScript.Arguments(0)
18.

19.
If Not fso.FileExists(sFile) Then
20.
	WScript.Echo sFile & " ist kein gueltiger Dateiname!"
21.
	WScript.Quit(1)
22.
End If
23.

24.
If Not fso.FileExists(sSonder) Then
25.
	WScript.Echo "Sonderzeichendaten " & sSonder & " nicht gefunden."
26.
	WScript.Quit(1)
27.
End If
28.
Set oSonder = fso.OpenTextFile(sSonder, 1)
29.
If Not oSonder.AtEndOfStream Then 
30.
	aSonder = Split(oSonder.ReadAll, vbCrLF)
31.
Else
32.
	oSonder.Close
33.
	WScript.Echo "Sonderzeichendatei " & sSonder & " enthält keine Daten!"
34.
	WScript.Quit(1)
35.
End If
36.
oSonder.Close
37.

38.
If Not fso.FileExists(sAusnahmen) Then
39.
	R = MsgBox("Ausnahmendatei " & sAusnahmen & " nicht gefunden!" & vbCrLF & vbCrLF & _
40.
		"Sollen alle Links (ohne Ausnahmen) umgewandelt werden?",vbYesNo)
41.
	If R <> vbYes Then WScript.Quit(1)
42.
	bAusnahmen = False
43.
Else
44.
	Set oAusnahmen = fso.OpenTextFile(sAusnahmen, 1)
45.
	If Not oAusnahmen.AtEndOfStream Then 
46.
		aAusnahmen = Split(oAusnahmen.ReadAll, vbCrLF)
47.
		bAusnahmen = True
48.
	Else
49.
		R = MsgBox("Ausnahmendatei " & sAusnahmen & " enthält keine Daten!" & vbCrLF & vbCrLF & _
50.
		"Sollen alle Links (ohne Ausnahmen) umgewandelt werden?",vbYesNo)
51.
		If R <> vbYes Then WScript.Quit(1)
52.
		bAusnahmen = False
53.
	End If
54.
	oAusnahmen.Close
55.

56.
End If
57.

58.
sFileBak = sFile & sFileExtOld
59.
If fso.FileExists(sFileBak) Then fso.DeleteFile(sFileBak)
60.
Set oFile = fso.GetFile(sFile)
61.
oFile.Name = sFileBak
62.
sText = oFile.OpenAsTextStream(1).ReadAll
63.
Set oFile = Nothing
64.

65.
Set oFileNew = fso.OpenTextFile(sFile, 2, True)
66.

67.
bDone = False
68.
lEnd = 0
69.
lPos2Write = 1
70.
Do
71.
	lStart = InStr(lEnd + 1, sText, sStart, vBTextCompare)
72.
	If lStart > 0 Then
73.
		lStart = lStart + lLenStart
74.
		oFileNew.Write Mid(sText, lPos2Write, lStart - lPos2Write)
75.
		lPos2Write = lStart
76.
		lEnd = InStr(lStart, sText, sEnd, vBTextCompare)
77.
		If lEnd > 0 Then
78.
			sLinkOld = Mid(sText, lStart, lEnd - lStart)
79.
			sLinkNew = ReplaceSpecialChars(sLinkOld, bAusnahmen)
80.
			oFileNew.Write sLinkNew
81.
			lPos2Write = lEnd
82.
		Else
83.
			bDone = True
84.
		End If
85.
	Else
86.
		bDone = True
87.
	End If
88.
Loop  Until bDone
89.

90.
oFileNew.Write Mid(sText, lPos2Write)
91.
oFileNew.Close
92.

93.
Function ReplaceSpecialChars(sOld, bAus)
94.
sTemp = sOld
95.
If bAus Then
96.
	For Each sLine In aAusnahmen
97.
		aAus = Split(sLine, "=")
98.
		If InStr(sOld, "/" & aAus(0)) <> 0 Then
99.
			sTemp = Replace(sOld, "/" & aAus(0), "/" & aAus(1))
100.
			Exit For
101.
		End If
102.
	Next
103.
End If
104.

105.
If sTemp = sOld Then
106.
	For Each sLine In aSonder
107.
		aChars = Split(sLine, ",")
108.
		For i = 1 To UBound(aChars)
109.
			sTemp = Replace(sTemp, aChars(i), aChars(0))
110.
		Next
111.
	Next
112.
End If
113.
ReplaceSpecialChars = sTemp
114.
End Function
Von der bearbeiteten Datei wird eine Sicherungskopie (mit der zusätzlichen Endung ".bak") erstellt.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
15.11.2007 um 03:27 Uhr
@bastla

Es muss aber wirklich nicht sein, dass Du um diese Zeit noch am Skripten bist.
Oder am Kommentare verfassen in dubiosen Foren....
Mach ich ja auch nicht.

Morgen ist auch noch ein Tag..



Grüße
Biber
Bitte warten ..
Mitglied: bastla
15.11.2007 um 07:26 Uhr
@Biber
Oder am Kommentare verfassen in dubiosen Foren....
Woher weißt Du von den dubiosen Foren?

... um diese Zeit noch am Skripten bist.
Mach ich ja auch nicht.
Nee, is klar, bei Dir ist's ja auch eine ganz andere Zeit - und vermutlich hast Du auch nur gebatcht ...

Jedenfalls schaut's so aus, als müssten wir beide uns wenigstens nicht um Schlafzimmerschranken kümmern ...

Grüße und guten Morgen
bastla
Bitte warten ..
Mitglied: Fraenky
15.11.2007 um 15:18 Uhr
Hallo bastla.
Habe bei Scriptausführung leider folgenden Fehlercode erhalten:

Zeile 61
Ungültiger Prozeduraufruf oder ungültiges Argument
Code 800A0005
Laufzeitfehler in MS VBS

Gruß
Fraenky
Bitte warten ..
Mitglied: bastla
15.11.2007 um 17:12 Uhr
Hallo Fraenky!

Ändere bitte die Zeile 61 von
01.
oFile.Name = sFileBak
auf
01.
oFile.Name = oFile.Name & sFileExtOld
Grüße
bastla
Bitte warten ..
Mitglied: Fraenky
15.11.2007 um 18:10 Uhr
Hallo bastla.
Es geht vorwärts. Hier eine weitere Fehlermeldung:

Zeile 98
Zeichen 3
Index außerhalb des gültigen Bereichs: "[number:0 ]"
Code 800A0009
Laufzeitfehler in MS VBS

Grüße
Fraenky
Bitte warten ..
Mitglied: bastla
15.11.2007 um 18:20 Uhr
Hallo Fraenky!

Entweder entfernst Du die in Deiner "Ausnahmen.txt" (vermutlich am Ende) befindliche(n) Leerzeile(n), oder (besser: und) Du änderst den Teil
01.
If bAus Then
02.
	For Each sLine In aAusnahmen
03.
		aAus = Split(sLine, "=")
04.
		If InStr(sOld, "/" & aAus(0)) <> 0 Then
05.
			sTemp = Replace(sOld, "/" & aAus(0), "/" & aAus(1))
06.
			Exit For
07.
		End If
08.
	Next
09.
End If
auf
01.
If bAus Then
02.
	For Each sLine In aAusnahmen
03.
		If sLine <> "" Then
04.
			aAus = Split(sLine, "=")
05.
			If InStr(sOld, "/" & aAus(0)) <> 0 Then
06.
				sTemp = Replace(sOld, "/" & aAus(0), "/" & aAus(1))
07.
				Exit For
08.
			End If
09.
		End If
10.
	Next
11.
End If
Grüße
bastla
Bitte warten ..
Mitglied: Fraenky
16.11.2007 um 00:44 Uhr
Hallo bastla.
Auch ohne Häubchen erste Sahne.
Scheint ein sehr rechenintensiver Prozess gewesen zu sein, hat einige Zeit gedauert.
Das Script ist problemlos Durchgelaufen und Stichproben sehen auch vielversprechend aus.
Super Arbeit bastla, auch die Fehleridentifizierung.

Hast Du Probleme am PC
Komm nach administrator.de
Du brauchst nicht mehr zu laufen
Hier werden Sie geholfen.

Willst Du dann zu den Sprachen,
Dann mußt Du nicht nach Aachen.
Mußt nur den bastla finden
Schon die Probleme schwinden.

Dank und Gruß
Fraenky
Bitte warten ..
Ähnliche Inhalte
Visual Studio

VB: Batchprogramm: Resultat zurückgeben an VB Form (Textfeld)

gelöst Frage von nepixlVisual Studio7 Kommentare

Hallo Admins, sitze aktuell an einem kleinen Problem. Per VB wird das Tool NCFTP(.exe) gestartet, NCFTP arbeitet allerdings im ...

Visual Studio

Email Versenden Mit VB

gelöst Frage von UltraZzVisual Studio2 Kommentare

Hey,ich würde gerne wissen wie man mit VB eine Email versenden kann. Ich habe schon folgendes versucht,aber es hat ...

Visual Studio

VB PictureBox halbtransparent machen

gelöst Frage von Leogal0010Visual Studio3 Kommentare

Hey Administratoren! Ich habe in letzter zeit Visual Basic für mich entdeckt, bin jedoch noch nicht sonderlich geübt, also ...

VB for Applications

Hilfe bei VB Skript

Frage von Voner1502VB for Applications1 Kommentar

Hallo zusammen. Ich habe ein Skript für die Übernahme von Druckern vom alten Servern zum neuen Server bekommen. Diese ...

Neue Wissensbeiträge
Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 14 StundenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 1 TagWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Windows 10

Windows 10 - Programme laufen schneller, wenn Sie mit Administratorrechten ausgeführt werden

Erfahrungsbericht von 1Werner1 vor 2 TagenWindows 1013 Kommentare

Moin, das wollte ich erst nicht glauben, aber es ist so. Wenn Ihr ein Programm mit Administratorrechten unter Windows ...

Sicherheits-Tools
Putty hat heftige Bugs korrigiert!
Information von Lochkartenstanzer vor 3 TagenSicherheits-Tools8 Kommentare

Moin, Wie man aus herauslesen kann, sind in den Versionen vor 0.71 gravierende Bugs, die es angeraten erscheinen lassen, ...

Heiß diskutierte Inhalte
Server-Hardware
Kompatibilität Tray für HP Proliant DL385 G10 vs. G8, G9
Frage von chris123Server-Hardware19 Kommentare

Hallo, weiß einer der hier anwesenden, ob die Trays für 2,5 " HDDs zwischen einem DL 385 G10 und ...

Outlook & Mail
Office 365 mit Email-Profil installieren
gelöst Frage von 139221Outlook & Mail18 Kommentare

Hallo, kurz zu meiner Person: Vor ungefahr 10 Jahren habe ich eine Umschuldung zum Fachinformatiker für Systemintegration gemacht aber ...

LAN, WAN, Wireless
Glasfaserkabel verlegen und Anschlüsse setzen
Frage von LLL0rdLAN, WAN, Wireless13 Kommentare

Hallo Leute, ich muss demnächst ein Netzwerkkabel auf einer Länge von ca. 70 Metern verlegen. Das Netzwerkkabel soll dabei ...

Server-Hardware
Server Hardwareempfehlung für Projekt
gelöst Frage von heax22Server-Hardware12 Kommentare

Hallo zusammen, ich bin auf der Suche nach einer geeigneten Server Plattform um unter Hyper-V einen virtuellen Server 2016 ...