Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

Interne Linkliste mit VBS auf Integrität überprüfen.

Mitglied: Fraenky

VBS soll Interne Linkliste verifizieren, also ob für alle Links Dateien vorhanden sind und ob für alle Dateien im Arbeitsordner Verlinkungen bestehen und ggf die nötigen Anderungen durchführen und auf Nachfrage die Aufteilung der Liste vornehmen

Hallo. Ich habe hier einen Ablaufplan entwickelt, aber leider wenig Kenntnisse in VBS.
Kann mir jemand weiterhelfen?

Ablaufplan:

Arbeitsordner abfragen und Pfad aus LinkListe ermitteln.

Dateien im Arbeitsordner ermitteln.

Überprüfen, ob alle Dateinamen nur Buchstaben( inkl. Sonderzeichen !) Zahlen und "_" enthalten, ggf ändern.
Änderungen in Protokolldatei ProtokollNameDatModi eintragen.

Linknamen aus LinkListe ermitteln

Alle Leerzeichen entfernen und mit "_ " verbinden / dddd_gggg_2

Vergleiche beide Datensätze.

Wenn Datei fehlt, nimm modifizierten Linknamen dddd_gggg_2 und speichere im Arbeitsordner mit Endung .php als leere Datei ab.
Erstellung in ProtokollNameDatNew abspeichern.

Wenn Link fehlt, nimm Dateinamen, ersetze _ mit " " und entferne .php.
Erstelle Link unter Verwendung des Pfades aus Linkliste, füge Linknamen an der
alphabetischen Position ein.


Damit ist die Übereinstimmung von Links mit Dateien sichergestellt.


Abfrage Linkliste aufteilen?

Nein = Ende

Ja = Anzahl der Dateien pro Ordner mit Abfrage ermitteln und nach Schema:
Die ersten x Dateien in den ersten Ordner, die zweiten x Dat in den zweiten usw.

Abfrage: Ordner fortlaufend Nummerieren oder Namen aus ListeNamenOrdner einlesen?

Ja = fortlaufende Nummer Nein = Namen einlesen



Abfrage: Dateien fortlaufend Nummerieren oder Namen aus ListeNamenLinks einlesen?

Ja = fortlaufende Nummer Nein = Namen einlesen

In beiden Fällen Datei anlegen mit Endung .php und den Link in die Datei reinschreiben, so das sonst nichts in der Datei steht, also kein Header, body usw.

Also liegt im Ordner "1" die Datei 1.php mit dem ersten Link der Liste als Inhalt.

Anschließend den Link zu der Datei 1.php in Protokolldatei = ProtokollNewNameLinklist reinschreiben

Istzustand: Arbeitsordner/1/Test.php
Link in ProtokollNewNameLinklist: 1/Test.php

Oder hat jemand eine andere Idee, wie man die Aufgabenstellung lösen kann?
Grüße
Fränky

Content-Key: 67337

Url: https://administrator.de/contentid/67337

Ausgedruckt am: 23.09.2021 um 18:09 Uhr

Mitglied: Fraenky
Fraenky 02.09.2007 um 17:27:48 Uhr
Goto Top
Hallo Leute.
Das Echo ist ja überwältigend.
Nach dem Motto: Mach´s dir selber, Sam.
OK, OK, das will ich dann hier auch mit meiner 8 tägigen Erfahrung in VBS probieren, brauche aber Korrektur und Leitung.
Ausgehend von der Überlegung, wie man ein Script aufbauen kann, allso von konkreten zum ganzen oder vom ganzen zum konkreten, entscheide ich mich für meinen Ablaufplan, also vom ganzen zum konkreten.
Hiervonausgehend werde ich versuchen, die Aktionen immer konkreter werden zu lassen, bis sie auch das VBS versteht und mein Computer die gewünschten Aktionen durchführt.
Nochmal zur Verdeutlichung: Alle Links meiner internen Linkliste verlinken auf Dateien im selben Arbeitsordner.

Zuerstmal ein paar Variablen mit Defaultwerten definieren:
Dank an bastla, der meine erste Version verbesserte.

So, bis hierhin haben Wir also schon mal einen Standartarbeitsordner C:\skript\test\" und einen variablen Arbeitsordner, der über Explorer eingegeben wird und über sPath ansprechbar ist.
Jetzt brauchen wir die Dateinamen der verlinkten Dateien in dem Arbeitsordner, die in der Datei VerlinkteDateien.txt gespeichert werden sollen.
Nach erfassen aller im Arbeitsordner gespeicherten Dateien in VerlinkteDateien.txt sollen alle "_" unterstriche entfernt und mit Blank " " ersetzt werden, ebenso die Dateierweiterung entfernen.
Alle Dateien enden mit .php
Name_Zwei_21.php wird Name Zwei 21
Diese Datei vergleichen Wir später mit den Linknamen.
Am besten währe an dieser Stelle auch einen FehlerCheck, ob also kein Name versehentlich falsch geschrieben wurde, ob also ein Komma oder Bindestrich o.ä. sich eingeschlichen hat.
So. dies ist also der nächste Aufgabenschritt.
Konstruktive Hinnweise oder Lösungen herzlich willkommen
Bis die Tage
Fränky

Edit 04.09.07
Hallo bastla.

In diesem zugegebenermaßen seltenen Fall: Dateiname.txt.php
würde nach der Bearbeitung doch "Dateiname" überbleiben oder?, also würde als Beschreibung eher gelten:
Alles links vom ersten "." wird genommen.Oder?

Gibt es überhaupt die Möglichkeit, wie unter Dos, die Parameter und Syntax der einzelnen Befehle der einzelnen Dienste abzufragen?

Hier noch der aktuelle Stand:
Edit end
Mitglied: bastla
bastla 04.09.2007 um 00:48:41 Uhr
Goto Top
Hallo Fraenky!

Vielleicht in weiterer Folge besser hier als per Mail ...

In diesem zugegebenermaßen seltenen Fall: Dateiname.txt.php
> würde nach der Bearbeitung doch "Dateiname" überbleiben oder?, also würde als Beschreibung eher gelten: Alles links vom ersten "." wird genommen.Oder?
Es würde "Dateiname.txt" bleiben - wenn Du Alles links vom ersten "." haben willst, musst Du InStr() anstelle von InStrRev() verwenden.
Gibt es überhaupt die Möglichkeit, wie unter Dos, die Parameter und Syntax der einzelnen Befehle der einzelnen Dienste abzufragen?
Soferne Du eine Online-Hilfe/-Referenz meinst (in der Offline-Version ;-) face-wink): http://www.microsoft.com/downloads/details.aspx?familyid=01592C48-207D- ... bzw alternativ eine deutschsprachige Version, zB von hier: http://wsh-vbs.de/scr56de.chm/script56.chm ...

Grüße
bastla
Mitglied: Fraenky
Fraenky 04.09.2007 um 15:33:47 Uhr
Goto Top
Hallo bastla.
Danke nochmals für den Link:
http://wsh-vbs.de/scr56de.chm/script56.chm
Super offline Hilfedatei mit Syntax usw.
Da Wir ja doch nicht um die Übertragung der Sonderzeichen bei der Linkerstellung herumkommen, habe ich hier gerade folgende Konversationstabelle aufgeschrieben:
Á1 = Anzeige im Browser
%C1 = Ordnername in html
Á = Bezeichnung des Sonderz. in html

Á1 <a href="LinkOrdner/%C11.php">&Aacute;1</a>

= Á = %C1 = &Aacute;

á2 <a href="LinkOrdner/%E12.php">&aacute;2</a>

= á = %E1 = &aacute;

À1 <a href="LinkOrdner/%C01.php">&Agrave;1</a>

= À = %C0 = &Agrave;

à2 <a href="LinkOrdner/%E02.php">&agrave;2</a>

= à = %E0 = &agrave;

Â1 <a href="LinkOrdner/%C21.php">&Acirc;1</a>

= Â = %C2 = &Acirc;

â2 <a href="LinkOrdner/%E22.php">&acirc;2</a>

= â = %E2 = &acirc;

Ã1 <a href="LinkOrdner/%C31.php">&Atilde;1</a>

= Ã = %C3 = &Atilde;

ã2 <a href="LinkOrdner/%E32.php">&atilde;2</a>

= ã = %E3 = &atilde;

Ç1 <a href="LinkOrdner/%C71.php">&Ccedil;1</a>

= Ç = %C7 = &Ccedil;

ç2 <a href="LinkOrdner/%E72.php">&ccedil;2</a>

= ç = %E7 = &ccedil;

É1 <a href="LinkOrdner/%C91.php">&Eacute;1</a>

= É = %C9 = &Eacute;

é2 <a href="LinkOrdner/%E92.php">&eacute;2</a>

= é = %E9 = &eacute;

È1 <a href="LinkOrdner/%C81.php">&Egrave;1</a>

= È = %C8 = &Egrave;

è2 <a href="LinkOrdner/%E82.php">&egrave;2</a>

= è = %E8 = &egrave;

Ê1 <a href="LinkOrdner/%CA1.php">&Ecirc;1</a>

= Ê = %CA = &Ecirc;

ê2 <a href="LinkOrdner/%EA2.php">&ecirc;2</a>

= ê = %EA = &ecirc;

Í1 <a href="LinkOrdner/%CD1.php">&Iacute;1</a>

= Í = %CD = &Iacute;

í2 <a href="LinkOrdner/%ED2.php">&iacute;2</a>

= í = %ED = &iacute;

Ì1 <a href="LinkOrdner/%CC1.php">&Igrave;1</a>

= Ì = %CC = &Igrave;

ì2 <a href="LinkOrdner/%EC2.php">&igrave;2</a>

= ì = %EC = &igrave;

Õ1 <a href="LinkOrdner/%D51.php">&Otilde;1</a>

= Õ = %D5 = &Otilde;

õ2 <a href="LinkOrdner/%F52.php">&otilde;2</a>

= õ = %F5 = &otilde;

Ú1 <a href="LinkOrdner/%DA1.php">&Uacute;1</a>

= Ú = %DA = &Uacute;

ú2 <a href="LinkOrdner/%FA2.php">&uacute;2</a>

= ú = %FA = &uacute;

Das sind die Sonderzeichen, die vorraussichtlich im Einsatz sind:
= Á = %C1 = &Aacute;
= á = %E1 = &aacute;
= À = %C0 = &Agrave;
= à = %E0 = &agrave;
= Â = %C2 = &Acirc;
= â = %E2 = &acirc;
= Ã = %C3 = &Atilde;
= ã = %E3 = &atilde;
= Ç = %C7 = &Ccedil;
= ç = %E7 = &ccedil;
= É = %C9 = &Eacute;
= é = %E9 = &eacute;
= È = %C8 = &Egrave;
= è = %E8 = &egrave;
= Ê = %CA = &Ecirc;
= ê = %EA = &ecirc;
= Í = %CD = &Iacute;
= í = %ED = &iacute;
= Ì = %CC = &Igrave;
= ì = %EC = &igrave;
= Õ = %D5 = &Otilde;
= õ = %F5 = &otilde;
= Ú = %DA = &Uacute;
= ú = %FA = &uacute;
Wenn das Script andere Zeichen zwischen "/" und "." und zwischen "&" und ";" findet, soll es das in Protokoll schreiben, damit die Tabelle erweitert werden kann.
Einsatz der Tabelle:
Wenn im Arbeitsordner, der die verlinkten Dateien enthällt, eine Datei mehr ist, als Links vorhanden sind, soll ja ein Link in der Linkliste zu dieser Datei erstellt werden. Wenn der Dateiname Sonderzeichen enthällt, soll zuerst dieses Sonderzeichen mit dieser Tabelle umgewandelt werden, um den Dateinamen in html zu bezeichenen: LinkOrdner/%FA2.php, um danach den Linknamen in html darzustellen:
php">&uacute;2</a>
Wenn der andere Fall eintritt, das nähmlich mehr Links in der Linkliste auftauchen, ohne die entsprechenden Dateien finden zu können, soll diese Datei im Arbeitsordner leer erstellt werden.
Also aus %FA2.php im Link wird die Datei ú2.php.
Damit ist schon mal die Problematik der Sonderzeichen gelöst.
Gruß
Fraenky
Mitglied: Fraenky
Fraenky 04.09.2007 um 21:42:27 Uhr
Goto Top
Hallo bastla.
Danke nochmal für die Hilfedatei.
Ich hoffe, die Liste mit den Sonderzeichen hilft, die Übersetzung für die Sonderzeichen sicherzustellen. Wir können sie ja in eine Datenbank einspeisen, um dann im Falle der Linkerstellung darauf zuzugreifen.

Das jetzige Script funktioniert noch nicht richtig.
Die Schleife:
wird nur einmal ausgeführt, das heist, nur ein Eintrag in LinkNamen.txt, auch wenn ich die Zeile
oLinkNamen.Close
ans Ende des Scriptes verschiebe, wo sie wahrscheinlich auch hingehört.
Und gleichzeitig sollte jetzt schon die Übersetzung der Sonderzeichen stattfinden, um später den Vergleich durchführen zu können.
Kannst Du das in einen Code gießen?
Grüße
Fraenky
Mitglied: bastla
bastla 04.09.2007 um 22:45:12 Uhr
Goto Top
Hallo Fraenky!

Kannst Du das in einen Code gießen?
Heute sicher nicht mehr ...

Außerdem würde ich vielleicht generell noch eine andere Strategie vorschlagen: Wenn Du ohnehin alle Dateien des Arbeitsordners verlinken willst, könntest Du vorweg für diese Dateien neue, richtige, Links erstellen und mit den berichtigten "alten" Links in der Datenbank zusammenfassen. Die weitere Vorgangsweise könnte Dir bekannt vorkommen: alle (alten und neuen) Links sortieren und die sortierte Liste so ausgeben, dass Duplikate (unter Ausschaltung der Groß- und Kleinschreibung) eliminiert werden - eigentlich hast Du den dafür erforderlichen Code schon.
Zum Thema "Schliefe wird nur einmal ausgeführt": Eine Schleife ist es erst, wenn Du einen Schleifenkopf und -fuß verwendest, also etwa:

Grüße
bastla
Mitglied: Fraenky
Fraenky 04.09.2007 um 23:25:14 Uhr
Goto Top
Hallo bastla.
Deine Erläuterung mit der Schleife war wieder mal goldrichtig. Alles läuft so, wie es angedacht war. Jetzt muß in der Datei LinkNamen.txt nur noch die Konvertierung stattfinden, um die Vergleichbarkeit sicherzustellen.
Deine vorgeschlagene Vorgangsweise ist eine komprimierte Form, die Wir vielleicht in Version 2 umsetzen können.
Hier möchte ich Schritt für Schritt vorgehen, um alle Operationen klar nachzuvollziehen.
Jetzt haben Wir allso zwei Dateien, von der eine noch konvertiert werden muß. Zu diesem Zweck werde ich jetzt die Datei Sonderzeichen:
Á,%C1,&Aacute;
á,%E1,&aacute;
À,%C0,&Agrave;
à,%E0,&agrave;
Â,%C2,&Acirc;
â,%E2,&acirc;
Ã,%C3,&Atilde;
ã,%E3,&atilde;
Ç,%C7,&Ccedil;
ç,%E7,&ccedil;
É,%C9,&Eacute;
é,%E9,&eacute;
È,%C8,&Egrave;
è,%E8,&egrave;
Ê,%CA,&Ecirc;
ê,%EA,&ecirc;
Í,%CD,&Iacute;
í,%ED,&iacute;
Ì,%CC,&Igrave;
ì,%EC,&igrave;
Õ,%D5,&Otilde;
õ,%F5,&otilde;
Ú,%DA,&Uacute;
ú,%FA,&uacute;

erstellen und diese in eine neue Datenbank einlesen und splitten lassen.
Danach soll das Script die Datei LinkNamen auf Sonderzeichen durchsuchen und das Sonderzeichen aus Feld 3 mit dem Zeichen aus Feld 1 in der Datei LinkNamen ersetzen.
Damit haben Wir die selbe Codierung in beiden Dateien, also ist der Vergleich möglich.

Grüße
Fraenky
Mitglied: Fraenky
Fraenky 05.09.2007 um 00:15:41 Uhr
Goto Top
Hallo bastla.
Hier die neue Datenbank ohne Abfrage.

Gruß
Fraenky
Mitglied: Fraenky
Fraenky 05.09.2007 um 13:39:04 Uhr
Goto Top
Hallo bastla.
Habe jetzt die Datenbank eingebaut und eine Anweisung eingebaut.
Bekomme aber Fehlermeldungen.
Kannst Du mal Dein Adlerauge schweifen lassen?

Gruß
Fraenky
Mitglied: bastla
bastla 05.09.2007 um 14:53:04 Uhr
Goto Top
Hallo Fraenky!

Zum Testen fehlt mir momentan die Zeit, daher nur als Entwurf:
Ich habe die einzelnen Arbeitsschritte in eine für mich sinnvollere Reihenfolge gebracht und etwas deutlicher gekennzeichnet.

Neu hinzugekommen ist (weil übersichtlicher: als eigene Function) "SonderKonvert()" - für einen dieser Funktion übergebenen Text werden alle in der Sonderzeichen-Datenbank enthaltenen Konvertierungen in einem Arbeitsgang vorgenommen und als Ergebnis ein vollständig konvertierter Text zurückgeliefert.

Im übrigen wäre anzumerken, dass die Link-Datenbank bei der derzeitigen Vorgangsweise keinen wirklichen Sinn hat - es würde eigentlich genügen, jede Zeile nach dem Einlesen, Überprüfen und Konvertieren sofort wieder in die neue Datei "LinkNamen" zu schreiben - das Zwischenspeichern in der Datenbank bringt dabei eigentlich nichts, und eine Sortierung, welche ursprünglich der Grund für den Einsatz der Datenbank war, wird auch nicht vorgenommen ...

Grüße
bastla
Mitglied: Fraenky
Fraenky 05.09.2007 um 18:25:19 Uhr
Goto Top
Hallo bastla.
Mancher währe glücklich, nach viel Arbeit die Quallität Deiner Entwürfe zu erreichen.
Einwandfrei, astrein, läuft so weit.
Das Wir erstmal die Datei LinkNamen erstellt haben, hatte auf jeden Fall den Vorteil, das fehlende Sonderzeichen bei Durchsicht ergänzt werden konnten, so das sie jetzt einwandfrei geschrieben ist.
Wir haben jetzt also beide Dateien ( LinkNamen.txt und VerlinkteDateien.txt) im selben Code geschrieben. Der nächste Schritt ist das zeilenweise Vergleichen beider Dateien. Wenn Übereinstimmung gefunden, das Paar aus beiden Dateien löschen, so das ein einmaliger Rest übrig bleibt, der dann im nächsten Schritt entsprechend behandelt wird.
Du als alter Praktiker hast natürlich recht, das das eine recht umständliche Weise war und das es durchaus effizienter in der Datenbank geht.
Aber jetzt zum Beispiel habe ich noch keine Ahnung, wie jeder Datensatz der einen Datei mit jedem Datensatz der anderen Datei verglichen wird. Durch das Schrittweise vorgehen steigt der Durchblick ins Script. Wenn Wir das jetzt noch realisiert haben, werden Wir erstmal die Datenbank optimieren, habe da schon Vorstellungen.
Die Sonderzeichen wurden allso nicht nach dem Schreiben in LinkNamen.txt durch einen neuen Durchlauf konvertiert, sondern durch die Funktion SonderKonvert beim schreiben erledigt.
Eine Funktion ist also eine ausgelagerte interne Behandlungsroutine, richtig?
Hier geschieht also der Austausch zwischen den Sonderzeichen. Aber kannst Du mir das mal auf Deutsch erklären, verstehe die Logik noch nicht.
Auf jeden Fall hat die Auslagerung als Funktion den Vorteil, das sie in Verbindung mit der Datenbank sauber in andere Scripte übertragbar ist.
Mit welchem Befehl muß den der Vergleich der einzelnen Datensätze in zwei schon geschriebenen Dateien erfolgen?
Gruß
Fraenky
Mitglied: bastla
bastla 05.09.2007 um 19:19:53 Uhr
Goto Top
Hallo Fraenky!

... sondern durch die Funktion SonderKonvert beim schreiben erledigt.
Genau genommen bereits beim Eintragen in die Link-Datenbank:
DataList("Text") = SonderKonvert(sText)

In der Function wird natürlich vorausgesetzt, dass die "SonderList"-Datenbank bereits erstellt (eingelesen) wurde, was beí einer Verwendung in einem anderen Script zu berücksichtigen wäre.
Zur Vorgangsweise:
In der Schleife über alle Sonderzeichen wird einfach versucht, jedes Sonderzeichen zu ersetzen, unabhängig davon, ob es tatsächlich in "sTemp" enthalten ist: Wenn enthalten, wird ersetzt, wenn nicht, bleibt der Variableninhalt eben unverändert - vielleicht nicht die effizienteste, aber eine effektive Lösung.
Mit welchem Befehl muß den der Vergleich der einzelnen Datensätze in zwei schon geschriebenen Dateien erfolgen?
In den Dateien kann nicht verglichen werden, dazu müssen die Datensätze wieder eingelesen werden - deshalb auch meine seinerzeitige Frage nach dem Sinn des Schreibens in die einzelnen Dateien ...

Eine Lösung für das Vergleichen hatte ich oben schon vorgeschlagen: Alle Daten (aus den beiden Dateien) in eine gemeinsame Datenbank stellen, die Datenbank sortieren und danach nur jene Datensätze, die sich vom Vorgänger unterscheiden, in die Ergebnisdatei schreiben.

Alternativ dazu müsste in einer (äußeren) Schleife jeder Satz der einen Datei eingelesen und in einer weiteren (inneren) Schleife mit jedem Satz der anderen Datei verglichen werden. Optimieren könnte man den Vorgang, indem die zweite Datei sortiert gespeichert wird, sodass ich das Vergleichen vorzeitig abbrechen kann - etwa, wenn ein Link mit dem Buchstaben "F" beginnt, ist es nicht erforderlich, mit Einträgen der Vergleichsdatei, welche mit "G" oder höher beginnen, zu vergleichen.

Grüße
bastla
Mitglied: Fraenky
Fraenky 05.09.2007 um 21:20:09 Uhr
Goto Top
Hallo bastla.
Also vergleicht man die Zeilen zweier Dateien über eine Datenbank.
Alle klar. Dann sind Wir also bei den Datenbanken.
Die Optimierung stelle ich mir folgendermaßen vor:
Nur der Einsatz einer Datenbank, wenn möglich.
In die ersten drei Spalten den Split der drei Codes aZeile (0 - 2), also ungefähr 20 Zeilen. In Spalte 4 aus Datei LinkNamen die zu konvertierenden LinkNamen, als Beispiel 3000 LinkNamen einlesen und in Spalte 5 aus Datei VerlinkteDateien die vorhandenen Dateien im Arbeitsordner, z.B 2500 Dateinamen, eintragen.
In Spalte 6 tragen Wir die URL ein.
Damit haben Wir alles unter einem Dach. Jetzt kommt es auf die richtigen Datenbankabfragen an.
Spalte 4 mit der neuen Funktion SonderKonvert konvertieren.
Also alle Sonderzeichen in Spalte 4 mit Spalte 3 vergleichen und gegebenenfalls mit Spalte 1 ersetzen.
Danach Spalte 4 mit 5 vergleichen und doppelte löschen, die restlichen Namen in die entsprechenden Dateien für einen Überblick eintragen.
Wenn danach in Spalte 4 noch LinkNamen vorhanden sind, bedeutet das, das mehr Links als verlinkte Dateien vorhanden sind. Also verbinde mehrteilige LinkNamen mit "_" und füge am Ende ein ".php" an(Link_Name.php) und erstelle die Datei im Arbeitsordner.
Wenn in Spalte 5 noch Namen stehen, bedeutet das, das mehr Dateien im Arbeitsordner als Links in LinkListe vorhanden sind.
Syntax:
<p><a href="../../../Pfad/Aben%E7a.php">Aben&ccedil;a</a></p>
Also schreibe für jeden Dateinamen aus Spalte 5 eine neue Zeile in LinkListe, füge aus Spalte 6 von vorn gesehen alles ein bis zum letzten "/", also so:
<p><a href="../../../Pfad/
Nimm den bereinigten Dateinamen, z.B. "Übrig Name", verbinde bei mehrteiligen Namen mit "_", füge am Ende ein .php an und konvertiere die Sonderzeichen mit Spalte 2 und füge an Zeile an:
<p><a href="../../../Pfad/Aben%E7a.php
füge weiterhin "">" ein:
<p><a href="../../../Pfad/Aben%E7a.php">
und konvertiere den gerade mit Unterstrich und .php vorbereiteten Dateinamen mit Spalte 3 und füge an:
<p><a href="../../../Pfad/Aben%E7a.php">Aben&ccedil;a
Füge Schlußtags ein: </a></p>
und füge die ganze Zeile an richtiger alphabetischer Position ein.
Sonderfälle:
<a title="Titel"href="Pfad/Estrela_Matutina.php">Estrela Matutina</a>
Man beachte den Titel mit nochmals zwei ", in diesem Fall soll vom ersten " bis zum 4 " wie URL behandelt werden.
Zusätzliche Abfrage:
Wenn nicht alle Einträge in LinkListe mit 4 " auftauchen, Abfrage
Es gibt Links ohne Titel, jetzt einfügen? J/N
Bei Ja, geben Sie Datei mit Titeln an, Auswahl über Explorer, zeilenweises einlesen aus Datei, Titel.txt, bei langen Titeln Blank als Trennzeichen, pro Zeile ein Titel für einen Link, wenn EOF in Titel.txt, oben wieder anfangen. Füge dem eingefügten Titel Blank und Linkname an:<a title="Titel Estrela Matutina"href="Pfad/
Bei Nein keine Titel einfügen.
Sonderfall:
Nur LinkName steht in Linkliste, ohne Verlinkung.
Estrela Matutina
Wenn kein Eintrag in Spalte 6 vorhanden, also keine URL, abfrage:
Geben Sie den Pfad ein. Eingabe wird als ""String genommen.
Alles weitere wie oben. Link vervollständigen und Datei erstellen, Abfrage wegen Titel.
Wenn URL in Spalte 6 vorhanden, nimm diese ohne Titel und mache Abfrage wegen Titel wie oben.
So, das sieht doch schon mal ganz gut aus.
Grüße
Fraenky
Mitglied: Fraenky
Fraenky 06.09.2007 um 00:50:40 Uhr
Goto Top
Hallo bastla.
Hier ein erster Versuch, die Datenbänke zusammenzufassen. Leider kommt eine Fehlermeldung gerade auf die Zeile:
Ist es überhaupt möglich, die Datenbanken zusammenzufassen, weil ja nur die ersten drei Spalten wagerecht zusammenhängen und nicht mit den anderen direkt zusammengehören?
Gruß
Fraenky

Zusammenfassung

Mitglied: bastla
bastla 06.09.2007 um 22:10:49 Uhr
Goto Top
Hallo Fraenky!

So verlockend die Idee auch sein mag, alle Daten in eine einzige Tabelle zu packen - das wird nix!

Jeder Datensatz einer solchen Tabelle muss den gleichen Aufbau haben, und ich kann nicht (sinnvoll) Teilbereiche von Datensätzen (mal 20 solche, dann 3000 eigentlich ganz andere, dann noch welche, ...) bilden. Die Aufteilung (zumindest zwischen Sonderzeichentabelle und Linkliste) sollte also jedenfalls beibehalten werden.

Grüße
bastla
Mitglied: Fraenky
Fraenky 06.09.2007 um 22:42:13 Uhr
Goto Top
Hallo bastla.
OK. In dieser Richtung war ich auch unterwegs. Hier die angepasste Konzeption.
Dann bleibt also die erste Datenbank mit den Konvertierungsdaten.
Dann in der 2. Datenbank in der ersten Spalte die URL, in der zweiten Spalte die Auflistung der verlinkten Dateien und in der dritten Spalte die extraierten Linknamen, die beim Einlesen nach der Konvertierung mit der 2. Spalte Dateien verglichen wird.
Bei Übereinstimmung Namen in 2 löschen und nicht in 3 eintragen.
Die restlichen Namen aus 2 und 3 in die entsprechenden Dateien (VerlinkteDateien + LinkNamen) für einen Überblick eintragen. In diesen Dateien stehen also alle Namen, für die neue Dateien oder neue Links erstellt wurden.
Wenn also in Spalte 3 noch LinkNamen vorhanden sind, bedeutet das, das mehr Links als verlinkte Dateien vorhanden sind. Also verbinde mehrteilige LinkNamen mit "_" und füge am Ende ein ".php" an(Link_Name.php) und erstelle die Datei im Arbeitsordner.
Wenn in Spalte 2 noch Namen stehen, bedeutet das, das mehr Dateien im Arbeitsordner als Links in LinkListe vorhanden sind.
Syntax:
<p><a href="../../../Pfad/Aben%E7a.php">Aben&ccedil;a</a></p>
Also schreibe für jeden Dateinamen aus Spalte 2 eine neue Zeile in LinkListe, füge aus Spalte 1 von vorn gesehen alles ein bis zum letzten "/", also so:
<p><a href="../../../Pfad/
Nimm den bereinigten Dateinamen, z.B. "Übrig Name", verbinde bei mehrteiligen Namen mit "_", füge am Ende ein .php an und konvertiere die Sonderzeichen mit Spalte 2 (Konvertierungsdatenbank) und füge an Zeile an:
<p><a href="../../../Pfad/Aben%E7a.php
füge weiterhin "">" ein:
<p><a href="../../../Pfad/Aben%E7a.php">
und konvertiere den gerade mit Unterstrich und .php vorbereiteten Dateinamen mit Spalte 3 (Konvertierungsdatenbank) und füge an:
<p><a href="../../../Pfad/Aben%E7a.php">Aben&ccedil;a
Füge Schlußtags ein: </a></p>
und füge die ganze Zeile an richtiger alphabetischer Position ein.
Sonderfälle:
<a title="Titel"href="Pfad/Estrela_Matutina.php">Estrela Matutina</a>
Man beachte den Titel mit nochmals zwei ", in diesem Fall soll vom ersten " bis zum 4 " wie URL behandelt werden.
Zusätzliche Abfrage:
Wenn nicht alle Einträge in LinkListe mit 4 " auftauchen, Abfrage
Es gibt Links ohne Titel, jetzt einfügen? J/N
Bei Ja, geben Sie Datei mit Titeln an, Auswahl über Explorer, zeilenweises einlesen aus Datei, Titel.txt, bei langen Titeln ", "als Trennzeichen, pro Zeile ein Titel für einen Link, wenn EOF in Titel.txt, oben wieder anfangen. Füge dem eingefügten Titel Blank und Linkname an:<a title="Titel Estrela Matutina"href="Pfad/
Bei Nein keine Titel einfügen.
Sonderfall:
Nur LinkName steht in Linkliste, ohne Verlinkung.
Estrela Matutina
Wenn kein Eintrag in Spalte 1 vorhanden, also keine URL, abfrage:
Geben Sie den Pfad ein. Eingabe wird als ""String genommen.
Alles weitere wie oben. Link vervollständigen und Datei erstellen, Abfrage wegen Titel.
Wenn URL in Spalte 1 vorhanden, nimm diese ohne Titel und mache Abfrage wegen Titel wie oben.
So, das ist doch ungefähr das, was Du schon immer gesagt hast. Kannst Du das nochmal übersetzen?
Grüße
Fraenky
Mitglied: Fraenky
Fraenky 07.09.2007 um 15:10:10 Uhr
Goto Top
Hallo bastla.
Vieleicht beschränken Wir Uns auf Unseren ursprünglichen Plan.
Lassen Wir die Thematik mit den Titeln außer Acht und machen einfach weiter.
Dann haben Wir also die zwei Datenbanken erstellt, die eine zum Konvertieren, klappt ja wunderbar :-) face-smile, und die zweite zum Vergleichen von vorhandenen Dateiennamen mit Linknamen.
Die Linknamen wurden konvertiert eingelesen und in LinkNamen.txt gespeichert und die Dateinamen in VerlinkteDateien.txt.
Das nur, weil ich zu Fuß die einzelnen Arbeitsschritte durchgehen wollte.
Weil ja das Vergleichen von Zeilen in Dateien sowiso nur über eine Datenbank stattfinden kann, wie Wir ja herrausgefunden haben, ;-) face-wink, sollte die Ausgabe nicht in den Dateien stattfinden, sondern direkt in der Datenbank verarbeitet werden, wie Du ja oben auch schon gesagt hast.
Also alle verlinkten Dateien in Datenbank einlesen, danach die konvertierten Linknamen mit VerlinkteDateien Spalte vergleichen, wenn vorhanden, beide löschen, wenn nicht vorhanden, in Spalte Linknamen eintragen, so das am Ende nur die Dateien in den Spalten stehen, die nicht das entsprechende Gegenstück gefunden haben.
Mit diesen Namen wie oben schon aufgeführt verfahren.
Gruß
Fraenky
Mitglied: bastla
bastla 07.09.2007 um 20:29:20 Uhr
Goto Top
Hallo Fraenky!

Zwischendurch eine Frage: Wozu willst Du eigentlich Links, die auf keine vorhandene Datei verweisen, behalten (bzw was machst Du mit den speziell dafür erstellten leeren Dateien)?

Grüße
bastla
Mitglied: Fraenky
Fraenky 07.09.2007 um 20:52:14 Uhr
Goto Top
Hallo bastla.
Weil ja meine interne Linkliste mit der Zeit gewachsen ist und einige Operationen überstanden hat und im vorigen Script über 500 Dopplungen angezeigt und rausgefiltert wurden, (so viele Doppelte hatte ich bestimmt nicht, kann sein, das sich die Meldung auch auf auf zwei Zeilen aufgeteilte Links bezogen hat usw) und ich die Linkliste im nächsten Script als Positivliste einsetzen will, möchte ich die Integrität sicherstellen, das also für alle meine eingesetzten Links auch alle Dateien vorhanden sind. Soll heißen, ich möchte keine toten Links auf meiner Webseite einsetzen.
Die leeren Dateien werden später von mir mit den entsprechenden Übersetzungsinhalten und Erläuterungen noch gefüllt, sollen jetzt aber schon erstellt werden, um schon mal an den Start gehen zu können und später die Dateien der Reihe nach abarbeiten zu können.
Grüße
Fraenky
Mitglied: Fraenky
Fraenky 10.09.2007 um 23:22:15 Uhr
Goto Top
Hallo bastla.
Habe das Prokekt bis hierhin konkretisiert.
Kannst Du den Rest mal übersetzten.
Oder stimmt die Logik soweit?
Gruß
Fraenky

Mitglied: bastla
bastla 11.09.2007 um 01:56:06 Uhr
Goto Top
Hallo Fraenky!

Alternativvorschlag mit folgendem Ablauf:
  • bestehende Linkliste in Datenbank einlesen mit sofortiger Kontrolle der verlinkten Dateien
  • nicht vorhandene Dateien erstellen
  • existierende Dateien einlesen und als Links in die Datenbank schreiben
Inhalt der Datenbank jetzt: Doppelte Datensätze für die bereits in der ursprünglichen Liste vorhandenen Dateien; nur einmal vorhanden sind die neu erstellten Links der zusätzlichen Dateien des Arbeitsordners.
  • Sortierung nach URL, dadurch folgen die jeweiligen doppelten Sätze unmittelbar aufeinander
  • Vergleich mit dem vorhergehenden Datensatz, und nur wenn unterschiedlich,
  • Link in die Ergebnisdatei schreiben

Zusätzlich erforderlich waren die Sonderzeichen-Konvertierungen "Sonder --> SonderLink" bzw "Sonder --> SonderDat" für das Erstellen der Links der im Arbeitsordner vorhandenen Dateien sowie eine ergänzte "Sonderzeichen.txt":
Bei dem von Dir vorgeschlagenen Ablauf wäre hinsichtlich der Umsetzung eine Besonderheit zu berücksichtigen: Es gibt keine Beziehung zwischen den beiden Datentabellen "LinkDat" und "DateiDat", sodass für jeden Vorgang "lösche LinkName in LinkDat" zunächst der zu löschende Datensatz in der "LinkDat" hätte gesucht werden müssen ...

Grüße
bastla
Mitglied: Fraenky
Fraenky 11.09.2007 um 16:05:44 Uhr
Goto Top
Hallo bastla.
Sieht ja soweit ganz gut aus.
Aber leider bekomme ich einen Fehler in Zeile 118 Ungültiger Prozeduraudruf "Left".
Kannst Du die Funktionalität noch insoweit erweitern, das die hinzugefügten Links und Dateien in VerlinkteDateienNeu.txt und LinkNamenNeu.txt und die Gesammten Linknamen in Datei GesammtLinkNamen.txt, alles im Format "Sonder", eingetragen werden?
Ansonsten super Logik.
Zur Liste habe ich noch
Ô,%D4,&Ocirc;
Ó,%D3,&Oacute;
hizugefügt.
Danke und Gruß
Fraenky
Mitglied: bastla
bastla 11.09.2007 um 16:08:23 Uhr
Goto Top
Hallo Fraenky!

Versuch es mit einer Sicherheitsabfrage vorweg:
> Kannst Du die Funktionalität noch insoweit erweitern ...
Ich hatte daran gedacht, aber mir dann überlegt, dass Du das vielleicht selbst machen möchtest.

Grüße
bastla
Mitglied: Fraenky
Fraenky 11.09.2007 um 16:21:17 Uhr
Goto Top
Hallo bastla.
Nett von Dir.
Werde ich dann mal versuchen.
Gruß
Fraenky
Mitglied: Fraenky
Fraenky 11.09.2007 um 18:53:36 Uhr
Goto Top
Hallo bastla.
Die Datei Fertig.txt wurde erstellt und ist 23 kb größer als Sortiert.txt.
An dem Arbeitsordner konnte ich mit den Dateien keine Veränderung feststellen. Das bedeutet doch, das Links in der LinkListe Fertig.txt gefehlt haben. Also war der Check schon mal nötig.
Auch testweise entfernte Dateien im Arbeitsordner wurden einwandfrei wiederhergestellt.
Soweit ist alles in Ordnung.
Bisher habe ich ja die Links in der LinkListe manuell erstellt. Also habe ich ein neues Wort im zu übersetzenden Text identifiziert, mit dem Wort eine Datei.php im Arbeitsordner erstellt und dann den Link dazu gemacht.
Darum ein Erweiterungsvorschlag:
Wenn in der LinkListe Namen ohne Link sind, also so:
<p>aben&ccedil;oar</p>
, dann soll dazu der Link und die Datei erstellt werden. Dann brauche ich nur die Wörter in die LinkListe eintragen, denn Rest macht dann das VBS.
Kannst Du mir das noch einfügen?
An den Protokolleinträgen arbeite ich noch.
Gruß
Fraenky
Mitglied: bastla
bastla 11.09.2007 um 20:31:22 Uhr
Goto Top
Hallo Fraenky!

Wenn in der LinkListe Namen ohne Link sind ...
Welchen Sinn sollte es haben, einen Namen einzutragen, zu dem es keine Datei gibt (denn wenn es die Datei gibt, wird der Link ohnehin erstellt)? Da würde ich eher dazu raten, anstelle des Namenseintrages eine leere Datei zu erstellen - dann wird der Rest vom Script erledigt.

Grüße
bastla
Mitglied: Fraenky
Fraenky 12.09.2007 um 20:37:31 Uhr
Goto Top
Hallo bastla.
Alles klar, kein Problem.
Hier der jetzige Stand der Dinge.
Leider ist die Datei LinkNamenNeu größer als die GesammtLinkNamen Datei. Kannst Du mir da mal meinen Fehler aufzeigen?


Hier wird die GesammtLinkNamen und VelinkteDateienNeu beschrieben.



Hier wird die GesammtLinkNamen beschrieben:


Zum nächsten Absatz möchte ich noch wissen, wie die Zeile (Replace(sDateiName, "_", " ")) zu schreiben ist, weil ich die Ersetzungen ja schon oben für die GesammtLinkNamen gemacht habe. Wenn ich Replace aber einfach weglasse, bekomme ich eine Fehlermeldung.



Hier versuche ich die LinkNamenNeu zu erfassen. Scheint aber nicht zu stimmen.




Mitglied: bastla
bastla 12.09.2007 um 21:35:59 Uhr
Goto Top
Hallo Fraenky!

Leider ist die Datei LinkNamenNeu größer als die GesammtLinkNamen Datei. Kannst Du mir da mal meinen Fehler aufzeigen?
Ich nehme nicht an, dass Du den orthografischen Fehler ("Gesammt") meinst. ;-) face-wink

Zunächst wäre zu klären, welche Inhalte die beiden Dateien eigentlich haben sollten - dass in "LinkNamenNeu" sämtliche Links inkl Duplikate geschrieben werden, ist sicher nicht beabsichtigt, aber eine Konsequenz der Platzierung in der Schleife für alle Datenbankeinträge.

In die "GesammtLinkNamen"-Datei werden zunächst alle Namen der neu erstellten Dateien und danach (BTW: Das Schließen und Neu-Öffnen der Ausgabedatei hat in diesem Zusammenhang eigentlich keinen Sinn - im Gegenzug fehlt dann auch noch das nochmalige Schließen) alle Namen der insgesamt vorhandenen Dateien (also nicht nur der ".php"-Dateien) geschrieben (was dazu führt, dass die neu erstellten Dateien doppelt vorkommen und auch ev Dateinamen anderer Dateitypen enthalten sein können).

Nochmals daher die Frage: Was soll in die beiden Dateien?

Zum nächsten Absatz möchte ich noch wissen, wie die Zeile (Replace(sDateiName, "_", " ")) zu schreiben ist, weil ich die Ersetzungen ja schon oben für die GesammtLinkNamen gemacht habe. Wenn ich Replace aber einfach weglasse, bekomme ich eine Fehlermeldung.
Wenn nichts mehr zu ersetzen ist, kostet das "Replace" zwar etwas Laufzeit, schadet aber nicht - daher solltest Du es (zumindest bis zur Entscheidung, was wann in die beiden fraglichen Dateien geschrieben werden soll) dabei belassen.

Grüße
bastla
Mitglied: Fraenky
Fraenky 12.09.2007 um 21:55:04 Uhr
Goto Top
Hallo bastla.
Wie die Namen schon ungefähr aussagen.
LinkNamenNeu = Alle Links, die neu erstellt wurden, weil mehr Dateien vorhanden waren; zum besseren Überblick.
VerlinkteDateienNeu = Alle neuen Dateien, weil mehr Links vorhanden waren; zum besseren Überblick.
GesammtLinkNamen = Alle vorhandenen LinkNamen zur eventuellen Weiterverarbeitung.

Wo und wie würdest Du denn die Daten auffangen, um die angesprochenen 3 Dateien zu befüllen?
Ich habe hier schon die Position verändert. hat den Output halbiert.
und auch die Close Funktionen angepasst, was mich aber bei der Hauptherausvorderung auch nicht weiterbringt, weil ja auch noch keine Konvertierung stattgefunden hat und meine Versuche, das zu beheben, fehlgeschlagen sind.
Die LinkNameNeu Datei ist nur noch 4kb größer als GesamtLinkNamen Datei, was ja auch auf das andere Format zurückzuführen sein könnte
Grüße
Fraenky
Mitglied: bastla
bastla 13.09.2007 um 00:15:00 Uhr
Goto Top
Hallo Fraenky!

LinkNamenNeu = Alle Links, die neu erstellt wurden, weil mehr Dateien vorhanden waren; zum besseren Überblick.
Mit der derzeitigen Programmlogik lassen sich diese Dateien nicht unmittelbar eruieren (da Datensätze, zu denen es kein Duplikat gibt, nicht gesondert ermittelt werden). Als Ansatz (falls wirklich notwendig) müsste ein Datensatz vorläufig zwischengespeichert werden, da erst nach Vergleich mit dem folgenden Satz feststellbar ist, ob es sich um ein Unikat handelt. Dieser Vergleich müsste für jeden geschriebenen Satz durchgeführt werden, um auch mehrere aufeinanderfolgende zusätzliche Links als "neu" zu identifizieren.

VerlinkteDateienNeu = Alle neuen Dateien, weil mehr Links vorhanden waren; zum besseren Überblick.
Anstelle des Schreibens in "GesamtLinkNamen" im Teil nach
platzieren.

GesamtLinkNamen = Alle vorhandenen LinkNamen zur eventuellen Weiterverarbeitung.
Unmittelbar nach dem Schreiben der vollständigen Link-Zeile mit
nur den Linktext in "GesamtLinkNamen" schreiben.
Die LinkNameNeu Datei ist nur noch 4kb größer als GesamtLinkNamen Datei, was ja auch auf das andere Format zurückzuführen sein könnte
Eigentlich müsstest Du ja nur die Zeilenanzahl vergleichen ...

Grüße
bastla
Mitglied: Fraenky
Fraenky 13.09.2007 um 15:19:59 Uhr
Goto Top
Hallo bastla.

Das habe ich ja schon in der E-Mail vermutet. Dieses Protokoll ist nicht wirklich nötig, sollte aber den Überblick über Änderungen ermöglichen.
Die Umsetzung bekomme ich alleine noch nicht hin.

werden). Als Ansatz (falls wirklich
notwendig) müsste ein Datensatz
vorläufig zwischengespeichert werden, da
erst nach Vergleich mit dem folgenden Satz
feststellbar ist, ob es sich um ein Unikat
handelt. Dieser Vergleich müsste

An der unten angesprochenden Stelle in Code habe ich versucht, einmal VerlinkteDateienNeu und einmal GesammtLinkNamen zu befüllen.

Anstelle des Schreibens in
"GesamtLinkNamen" im Teil nach
platzieren.

Vielleicht hast Du beim flüchtigen Lesen übersehen ;-) face-wink ,das ich an dieser Stelle zwei Anweisungen eingesetzt hatte.


Also müßte dieses ja erledigt sein.
GesammtLinkNamen wollte ich eigentlich dreimal befüllen.
Einmal bei den neu erstellten Dateien, einmal bei den neu erstellten Links und einmal bei den vorhandenen Links. Da aber die Programmstruktur das befüllen bei den neu erstellten Links nicht zuläßt, werde ich die Datei GesammtLinkNamen unten beim Aussortieren der Dopplungen durchführen. Bisher wird an dieser Stelle aber nur das Format SonderLink geliefert. Ich habe da verschiedene Variablen ausprobiert, habe aber nicht das gewünschte Ergebnis erzielen können.
Kannst Du mir da weiterhelfen?

> GesamtLinkNamen = Alle vorhandenen
LinkNamen zur eventuellen
Weiterverarbeitung.
Unmittelbar nach dem Schreiben der
vollständigen Link-Zeile mit
nur den Linktext in
"GesamtLinkNamen" schreiben.

Also meinst Du hier, das ich statt:



nehmen sollte. OK. Aber das Feld ("LinkName") liefert das Format SonderLink, ich brauche aber Format Sonder.


Eigentlich müsstest Du ja nur die
Zeilenanzahl vergleichen ...

Ja klar, aber ein Zähler ist ja noch nicht eingebaut und mit den kopierten Originaldaten nicht feststellbar, also nehme ich erst mal das, was direkt einsetzbar ist, in diesem Fall die Dateigröße.

Also eigentlich zum Schluß nur die Bitte an Dich, mir zu dem richtigen Format für oGesammtLinkNamen zu verhelfen.
Am besten mit dem richtigen Code. ;-) face-wink

Grüße
Fraenky
Mitglied: bastla
bastla 13.09.2007 um 15:34:49 Uhr
Goto Top
Hallo Fraenky!

Vielleicht hast Du beim flüchtigen Lesen übersehen ;-) face-wink ,das ich an dieser Stelle zwei Anweisungen eingesetzt hatte.
Das nicht, aber ich hatte auf Deine Eigeninitiative gesetzt ... ;-) face-wink

Eigentlich müsstest Du ja nur die Zeilenanzahl vergleichen ...
Ja klar, aber ein Zähler ist ja noch nicht eingebaut und mit den kopierten Originaldaten nicht feststellbar ...
Dein Macromedia-Editor kann doch sicher Zeilennummern anzeigen ...

... das Feld ("LinkName") liefert das Format SonderLink, ich brauche aber Format Sonder.
Hatten wir nicht Functions zum Konvertieren in alle Richtungen? Eigentlich sollte
funktionieren.

Grüße
bastla
Mitglied: Fraenky
Fraenky 13.09.2007 um 16:03:03 Uhr
Goto Top
Hallo bastla.

Eigentlich hatte ich die Konvertierung versucht, mit verschiedenen(weil es nicht funktionierte) Variablen durchzuführen, was, wie schon erwähnt, nicht klappte. War wohl falsche Syntax. oder so.
Aber Dein Code funktioniert wieder mal. :-) face-smile Freude

Alles Klar und
Danke
Fraenky
Mitglied: Fraenky
Fraenky 13.09.2007 um 16:36:24 Uhr
Goto Top
Hallo bastla.
Wenn Du mir jetzt noch den 2. Teil der Aufgabe in Code schreiben kannst, haben Wir mal wieder 100% erreicht.

Abfrage Linkliste aufteilen?

Nein = Ende

Ja =
Abfrage: Geben Sie die Anzahl der Dateien pro Ordner an.
Und nach Schema:
Die ersten x Dateien in den ersten Ordner, die zweiten x Dat in den zweiten usw.

Abfrage: Ordner fortlaufend Nummerieren oder Namen aus ListeNamenOrdner.txt einlesen?

Ja = fortlaufende Nummer Nein = Namen einlesen.

Abfrage: Dateien fortlaufend Nummerieren oder Namen aus LinkNamen erstellen?

Ja = fortlaufende Nummer Nein = Namen erstellen(Format = Sonder)

In beiden Fällen Datei anlegen mit Endung .php und den Link in die Datei reinschreiben, so das sonst nichts in der Datei steht, also kein Header, body usw.

Also liegt im Ordner "1" die Datei 1.php mit dem ersten Link der Liste als Inhalt.

Anschließend den Link zu der Datei 1.php in Protokolldatei = ProtokollNewNameLinklist reinschreiben

Istzustand: Arbeitsordner/1/Test.php
Link in ProtokollNewNameLinklist: 1/Test.php
Link in Datei 1.php: 1/Test.php

Grüße
Fränky
Mitglied: Fraenky
Fraenky 13.09.2007 um 22:05:11 Uhr
Goto Top
Hallo bastla.
Kannst Du mir von hieraus weiterhelfen?

Gruß
Fraenky
Mitglied: Fraenky
Fraenky 16.09.2007 um 16:02:31 Uhr
Goto Top
Hallo bastla.
Versuche gerade, die Gesamtanzahl der Links in LinkListe festzustellen.
Dabei fiel mir der Unterschied in der Schleife je nach Position der Zählererhöhung auf.
Kann ich dadurch die Anzahl der neuer Links ermitteln oder was ist der Unterschied?
Brauche die Anzahl, um sie später durch Anzahl Ordner teilen zu können.


Kann ich also icountera als Gesammtanzahl der Links nehmen?
Und wie drücke ich
AnzOrd = (icountera) / (AnzDatOrd)
korrekt aus.
Jede Hilfestellung herzlich willkommen.
Gruß
Fraenky
Mitglied: Fraenky
Fraenky 16.09.2007 um 18:40:11 Uhr
Goto Top
Hallo bastla.

Habe hier das Grundgerüßt etwas erweitert, komme aber nicht weiter.
Ich finde, das ich jetzt die Grundkonzeption und eine erste Struktur erstellt habe.
Was jetzt noch fehlt, ist Dein Glanz zwischen meinen Schleifen.
Laß doch mal Deine Finger über die Tastatur fliegen, damit Wir dieses Projekt erfolgreich abschließen können.

Der Code:
Danke und
m.f.G
Fraenky

P.S.
Ich lerne nebenbei noch Flash, Php, CMS und TYPO3.
Stelle also bitte nicht zu hohe Ansprüche an meine Auffassungsfähigkeiten. Ich lerne gerne, aber möchte vor allem vorranschreiten.
Mitglied: bastla
bastla 16.09.2007 um 21:35:37 Uhr
Goto Top
Hallo Fraenky!

Kann ich also icountera als Gesammtanzahl der Links nehmen?
icountera = Anzahl Einträge (also inkl. Duplikate) in der Datenbank (müsste demnach am Ende dem Wert von LinkDat.RecordCount entsprechen)
icountero = Anzahl (geschriebener) Links
Brauche die Anzahl, um sie später durch Anzahl Ordner teilen zu können.
Es hat IMO eigentlich wenig Sinn, vorweg die Anzahl der Ordner zu berechnen oder die entsprechenden Ordner sogar zu erstellen - einfacher ist es, einen Ordner zu befüllen, und sobald dieser die vorgegebene Anzahl an Dateien enthält, den nächsten Ordner zu erstellen und zu befüllen, bis alle Dateien aufgeteilt sind.
Du machst durch die umgebenden Anführungszeichen aus den beiden Teilen einen einzigen String. Richtig wäre es so:
Ganz richtig wäre es, nur Strings miteinander zu verketten, und daher vorweg die Zahl "icountern" in einen String umzuwandeln:

Grüße
bastla
Mitglied: bastla
bastla 16.09.2007 um 23:33:32 Uhr
Goto Top
Hallo Fraenky!

(Verständnis-)Fragen:

Wenn der Ordnername aus der ersten Zeile der Datei "ListeNamenOrdner" gelesen wird, so ist nur dieser eine Ordner zu erstellen und alle Dateien sind in diesen Ordner zu legen (ohne Aufteilung)? Oder soll der eingelesene Ordnername als Präfix für die laufende Nummer dienen und dennoch eine Aufteilung der Dateien vorgenommen werden?

Istzustand: Arbeitsordner/1/Test.php
Link in ProtokollNewNameLinklist: 1/Test.php
Link in Datei 1.php: 1/Test.php

Beispiel: In Datei sPath/1/1 Liegt "PfadInDat"/!/1.php in oder "PfadInDat"/OrdnerName/LinkName.php
Der einzugebende Pfad ("PfadInDat") wird zusammen mit dem Originaldateinamen in die neue Datei geschrieben (unabhängig davon, ob die Datei als Namen eine laufende Nummer erhält oder den Originalnamen trägt)?

Was soll in die Protokolldatei eingetragen werden - Vollständiger Link mit URL = Pfad/DateinameOderNummer.php und Linktext = Originaldateiname?

Grüße
bastla
Mitglied: Fraenky
Fraenky 17.09.2007 um 14:08:37 Uhr
Goto Top
Hallo bastla.

Wenn der Ordnername aus der ersten Zeile der
Datei "ListeNamenOrdner" gelesen
wird, so ist nur dieser eine Ordner zu
erstellen und alle Dateien sind in diesen
Ordner zu legen (ohne Aufteilung)? Oder soll

Ich möchte hier einfach die Wahl haben, ob die Ordner durchnummeriert werden oder ob ich sie extra benennen kann. Das heißt, wenn ich sie extra benenne, das in diesen benannten Ordner die ersten z.B 100 Dateien (aus AnzDatOrd) erstellt werden und mit dem nächsten Namen der nächsten Reihe aus ListeNamenOrdner die nächste Anzahl aus AnzDatOrd. Falls zuwenig Namen in ListeNamenOrdner vorhanden, von oben die Namen der restlichen zu benennenen Ordner ergänzen. Ansonsten genauso mit nummerierten Ordnern verfahren.

der eingelesene Ordnername als Präfix
für die laufende Nummer dienen und
dennoch eine Aufteilung der Dateien
vorgenommen werden?

Nein. Entweder die Ordner laufend Nummerieren bis AnzOrd = (GesammtanzahlLinks) / (AnzDatOrd) +1 und mit AnzDatOrd befüllen.
oder die Ordner benennen und mit AnzDatOrd befüllen.

Der einzugebende Pfad
("PfadInDat") wird zusammen mit dem
Originaldateinamen in die neue Datei
geschrieben (unabhängig davon, ob die
Datei als Namen eine laufende Nummer
erhält oder den Originalnamen
trägt)?

Jain. Vorher noch den erstellten Ordner einfügen. PfadInDat/OrdnerNameoderZahl/DateiNameoderZahl.php
(Zur absoluten Pfaderstellung. In der Linkliste sind ja alles relative Pfade.)
Ich möchte hier die Wahl haben, ob die Dateien durchnummeriert werden oder ihren Originalnamen behalten.

Was soll in die Protokolldatei eingetragen
werden - Vollständiger Link mit URL =
Pfad/DateinameOderNummer.php und Linktext =
Originaldateiname?

Da brauche ich einfach den Pfad vom Arbeitsordner aus (sPath) ohne sPath, mit Präfix xxx also:
xxx/OrdnerNameoderZahl/DateiNameoderZahl.php.

Das xxx werde ich später manuell anpassen. Bin ja jetzt noch in der Vordenke der Webseite und möchte hier die Möglichkeit haben, die Dateien direck anzusprechen.

Danke auch für Deine Erläuterungen im zweiten Posting.

Grüße
Fraenky
Mitglied: Fraenky
Fraenky 17.09.2007 um 15:59:24 Uhr
Goto Top
Hallo bastla.
Möchte hier noch mal den Pfad charakterisieren, der in die neue Datei abgelegt wird.
Er ist fast der selbe wie in der LinkListe, nur wird der erste Teil mit PfadInDat ersetzt.
Beispiel:
vorher: <a href="../../../..Pfad/Aben%E7a.php">Aben&ccedil;a</a>
Also ../../../..Pfad
mit PfadInDat ersetzen.
Natürlich ohne <p></p>
Hoffe, es ist jetzt etwas deutlicher geworden.
Der relative Pfad wird zum absoluten.
Gruß
Fraenky
Mitglied: Fraenky
Fraenky 18.09.2007 um 11:07:12 Uhr
Goto Top
Hallo bastla.
Ja länger man über etwas nachdenkt, um so genauer kann ich es beschreiben.
Der Sinn der Aufteilung der LinkListe besteht darin, jeden Link in eine Datei abzuspeichern. Da die Links in der Liste mit relativem Pfad gespeichert sind, muß eine Umwandlung in einem absoluten Pfad mittels PfadInDat erfolgen, weil die späteren Aufrufe aus unterschiedlichen Ordnern erfolgen. Die minimale Anforderungen an das Script ist die Benennung der Ordner und Dateien( die den neuen absoluten Pfad enthalten) mit fortlaufenden Zahlen.
Die Benennung mit Namen ist optional und dienen einem zukünftigen, noch nicht genau erkennbaren, Einsatzzweck. Also kannst Du auch die bezüglichen Abfragen rausnehmen, wenn Du nur die Variante mit der fortlaufenden Nummerierung wählst.
In die Protokolldatei einfach nur die neuen Pfade mit Präfix bis zur neuen Datei reinschreiben.
Also Prafix/OrdnerNummer/Dateinummer.php
Und das ist es eigentlich schon.
MfG
Fraenky
Mitglied: Fraenky
Fraenky 18.09.2007 um 20:28:52 Uhr
Goto Top
Hallo bastla.
Hörst Du mich nicht mehr oder

Willst Du nicht mehr mit mir Arbeiten, obwohl doch die Aufgabe mittlerweile eindeutig beschrieben ist und Du in dieser Hinsicht mein einziger Lichtblick bist?

Grüße
Fraenky
Mitglied: bastla
bastla 18.09.2007 um 22:20:38 Uhr
Goto Top
Hallo Fraenky!

Da es momentan für mich etwas schwierig ist, konzentriert an der Fertigstellung zu arbeiten, muss ich das Testen des folgenden Entwurfes Dir überlassen:

Grüße
bastla

[Edit] Fehler bei Überprüfung auf bereits betehenden Zielordner korrigiert. [/Edit]
Mitglied: Fraenky
Fraenky 19.09.2007 um 02:26:16 Uhr
Goto Top
Hallo bastla.

Ganz so Eindeutig wahr´s wohl doch noch nicht.
Danke für Deinen ersten Anlauf, der meine Undeutlichkeiten aufzeigt.

Sorry für die Begriffsverwirrung. Da das Script ja gewachsen ist, stellt sich jetzt eine gewisse nicht eindeutige Begriffsbezeichnung der Pfade herraus.

Da ich den PfadInDat im Format:
http://www.xyz/IrgendeinOrdner/NochIrgendeinOrdner/
eingebe, ist, denke ich, eine Behandlung des "PfadSonder = SonderDatConvert(Pfad)"mit SonderDatKonvert nicht nötig.

Weiterhin verstehe ich nicht, wie Du mit dieser Anweisung:
If Not fso.FolderExists(sPath & "\" & Pfad) Then fso.CreateFolder(sPath & "\" & Pfad)
den relativen Pfad der LinkListe zum absoluten Pfad machen willst. sPath ist der Arbeitsordner

( in dem dann auch die neuen durchnummerierten Ordner und in diese die durchnummerierten Dateien abgelegt werden und haben mit der Internetadresse, die in der neuen Datei(z.B. 1.php) abgelegt werden, nichts zu tuen )

und der Pfad ist der mit Abfrage eingegebene absolute Pfadteil, der den Anfang des relativen Pfadteils aus der LinkListe ersetzen soll.
Also aus
<a href="../../../../relativerPfad/Aben%E7a.php">aben&ccedil;a</a>
soll werden
<a href="http://www.xyz/IrgendeinOrdner/NochIrgendeinOrdner/Aben%E7a.php;&g ..."

Das bedeutet, das der erste Teil des relativen Pfades aus der LinkListe bis zum letzten "/", also :
../../../../relativerPfad
mit der manuellen über die Abfrage ermittelten PfadInDat(eigentlich "ersterTeildesPfadInDat") ersetzt werden soll.

Ergebniss abzüglich Tags:
http://www.xyz/IrgendeinOrdner/NochIrgendeinOrdner/Aben%E7a.php;&g ...

Dann aber im format Sonder - LinkName, also
http://www.xyz/IrgendeinOrdner/NochIrgendeinOrdner/Abençoa.php

Nur diese reine Internetadresse soll in der neu erstellten Datei liegen.


*Wir haben also verschiedene Pfade.
Einmal der Arbeitsordner sPath, in dem ja die einzelnen Dateien zur Verifizierung der LinkListe liegen und in dem jetzt noch die durchnummerierten Ordner mit den jeweiligen Dateien erstellt werden sollen.

*Dann haben Wir noch die relativen Pfade aus der LinkListe.

*Weiterhin haben Wir den manuell einzugebenen Pfad PfadInDat, der den relativen Pfad aus der LinkListe in eine Internetadresse umwandeln soll.

*Und zu guter letzt haben Wir den relativen Pfad zur durchnummerierten Datei vom Arbeitsordner aus mit Präfix, der in die Protokolldatei geschrieben werden soll. Also z.B. ein Eintrag: Präfix/21/65.php

Falls Du dies so in dem Script schon behandelt hast, dann habe ich es noch nicht richtig verstanden und konnte es auch in der Wirkung noch nicht betrachten, weil die Ausführung in Zeile 213

If Not fso.FolderExists(fso.CreateFolder(sPath & "\" Pfad & "\" & sOrdner)) Then

einen Kompilierungsfehler auswirft.

Grüße
Fraenky
Mitglied: bastla
bastla 19.09.2007 um 07:19:11 Uhr
Goto Top
Hallo Fraenky!

... einen Kompilierungsfehler auswirft.
In diesem Fall war es (da der Fehler ganz offensichtlich war) nicht notwendig, die Fehlermeldung exakt anzugeben - ansonsten hilft dies uU entscheidend weiter ...

Die entsprechende Zeile ist zwar jetzt oben bereits korrigiert, die restlichen Änderungen folgen aber erst später.

Grüße
bastla
Mitglied: bastla
bastla 20.09.2007 um 22:21:57 Uhr
Goto Top
Hallo Fraenky!

Nächster Versuch ...

Nur diese reine Internetadresse soll in der neu erstellten Datei liegen.
Also keine Tags? Falls dem so sein sollte, kannst Du das Einfügen der Tags ja sicher selbst aus dem Code entfernen.


Grüße
bastla
Mitglied: Fraenky
Fraenky 22.09.2007 um 22:57:49 Uhr
Goto Top
Hallo bastla.
Mir schwirrt gerade etwas der Kopf wegen der vielen neuen Infos bezüglich der oben angesprochenden Themengebiete und ich hoffe, das sich das Bild bald konkretisiert.
Nur Typo 3 werde ich sicherlich nicht einsetzen, ist ja hochkomplex, schwierig einzurichten und einen Bestand einzupflegen, wenns läuft ist es sicherlich nicht schlecht, aber meine Datenstrucktur braucht kein Typo3.
Darum möchte ich Dich bitten, um vorranzuschreiten keine über meine normalen Logikfähigkeiten hinausgehenden Eigenschaften abzufragen, weil mir das alles jetzt zu viel wird. Ich währe Dir dankbar, wenn Du den Code dahingehend erweiterst, das die Ordner mit den Dateien mit dem normalen Weblink angelegt werden. Momentan ist der Stand der Dinge, das die Dateien umbenannt werden, aber noch keine Ordner angelegt werden. Der Link in den Ordnern stimmt noch nocht, weil PfadInDat mit dem letzten schon spezifizierten Teil der LinkListe zu ergänzen ist.
Wie gesagt, brauche ich VBS nicht direckt für den Betrieb der Webseite, sondern wird von mir für die Vorbereitung der Daten eingesetzt. Und in diesem Sinne muß ich nicht unbedingt alles verstanden haben, da reichen erstmal lauffähige, die Aufgabenstellung erfüllende Scripte, die ich ja später immer noch analysieren kann, wenn´s um Modifizierungen geht.
Es dauert mir einfach jetzt zu lange, bis ich das alles genau verstanden habe.
Ich habe schon ziemlich viele Vorarbeiten gemacht und möchte auch mal fertig werden.
Währe schön, wenn Du mir dabei weiterhin hillfst, wie Du es ja bisher schon getan hast.
Viele Grüße
Fraenky
Mitglied: bastla
bastla 23.09.2007 um 12:12:27 Uhr
Goto Top
Hallo Fraenky!

Versuch es mit dieser Version:

Grüße
bastla
Mitglied: Fraenky
Fraenky 23.09.2007 um 20:48:30 Uhr
Goto Top
Ja hallo bastla.
Da kommen Wir der Sache doch schon sehr näher. Die Struktur stimmt, als einziges muß noch der Link in den Dateien nachjustiert werden.
Habe ich mit:


versucht, den Dateinamen :

http://www.test.de/%C1gua.php

von SonderDat nach Sonder zu konvertieren, sagt mit das Script aber was von einer "Typen Unverträglich" SonderDatSonder.
Scheint eine Felddeklaration dem entgegenzustehen?

Ansonsten schon fast fertig.

Gruß
Fraenky
Mitglied: bastla
bastla 23.09.2007 um 21:15:00 Uhr
Goto Top
Hallo Fraenky!

Du wirst sicher einen Grund haben, einen Dateinamen wie "1.php" zu konvertieren ...

... was auch klappen sollte, wenn Du die Function "SonderDatSonderKonvert()" dafür verwendest.

Grüße
bastla
Mitglied: Fraenky
Fraenky 23.09.2007 um 23:37:47 Uhr
Goto Top
Hallo bastla.
Gute Idee übrigens, die Abfragen als Schalter über die Kommentierung zu regeln.
War natürlich nicht beabsichtigt, den Dateinamen zu konvertieren, sondern den LinkTeil, nur finde ich da irgendwie noch nicht den richtigen Ansatz.
Vorher wollte ich eigentlich hier ansetzen:

sURL = Pfad & "/" & SonderLinkSonderKonvert(Mid(aZeile(1), InStrRev(aZeile(1), "/") + 1))

Und zwar nicht mit SonderLinkSonderKonvert. sondern mit SonderDatSonder, weil ja das Sonderformat der Dateienschreibweise in html in das Format Sonder konvertiert werden soll, hat aber auch nicht geklappt.


Also ich weiß da erstmal nicht weiter.

Gruß
Fraenky
Mitglied: Fraenky
Fraenky 24.09.2007 um 00:42:13 Uhr
Goto Top
Hallo bastla.
Dies paßt schon mal besser.


Aber leider wird der Ordner nicht mitgeliefert.
Folgendes klappt leider nicht:


Anweisungsende wird erwartet. Hätte sOrdner geklappt, währe die Konvertierung dran gewesen.
Aber so.
Gruß
Fraenky
Mitglied: Biber
Biber 24.09.2007 um 07:00:57 Uhr
Goto Top
Moin Fraenky,

Bitte ergänze am Ende meiner angefangenen Zeile..
... dort, wo die Pünktchen stehen das in Deinem Sourcecode fehlende "&".


Grüße
Biber
Mitglied: Fraenky
Fraenky 24.09.2007 um 13:28:20 Uhr
Goto Top
Hallo Biber.

Ach so, ja, das Script will´s natürlich genau wissen. Jetzt, wo Du´s sagst, springt es einem natürlich sofort in die Augen. Und eine Konvertierung ist ja auch erst im Falle der Namensgebung der Ordner nötig.
Danke allso Biber.


Hallo bastla.

Haben Wir es also wieder einmal geschaft, die verschiedenen Herrausvorderungen des Brain to Brain zu meistern.
Nach den letzten kleineren Änderungen läuft und läuft und läuft das Script und macht, was es sollte.
Astrein. Super. Spitze.
Danke bastla, weiter so, Du "Robin Hood" des VBS.
(Nimmst nicht den Reichen, schöpfst aber aus tiefen Quellen und gibst freigibig denen, die nicht so tief kommen)
Viele Grüße
Fraenky
Mitglied: bastla
bastla 24.09.2007 um 13:39:38 Uhr
Goto Top
Hallo Fraenky!

... läuft das Script und macht, was es sollte.
... dann könntest Du ja den Beitrag als "erledigt" kennzeichnen ...

Grüße
bastla
Heiß diskutierte Beiträge
question
Netzwerkdosen verbindenR3nN1979Vor 1 TagFrageInternet6 Kommentare

Hallo, Ich ziehe bald um, und benötige dabei Hilfe, wie ich Netzwerkdosen miteinander verbinden kann. Habe überhaupt keine Ahnung davon, aber mir kann jemand von ...

general
Endpoint AV für FirmenumgebungKauzigVor 1 TagAllgemeinErkennung und -Abwehr17 Kommentare

Hallo, aktuell bin ich am Suchen einer Endpoint AV für meine Firmenumgebung wichtig wäre mir ein zentrales Management sowie ggf. sogar ein Patch System. Aktuell ...

question
Ein Domänenbenutzer für alle MitarbeiterMarabuntaVor 17 StundenFrageWindows Userverwaltung6 Kommentare

Hi, ist es möglich/sinnvoll bzw. wie ist es lizenztechnisch, wenn es einen Domänen-Benutzer für alle Mitarbeiter(10) gibt, diese Benutzen eine Branchensoftware in der jeder eigene ...

question
Einarbeitung VPN und entsprechende RouterFrankNVor 1 TagFrageRouter & Routing8 Kommentare

Hallo zusammen, ich bin am Einarbeiten in das Thema VPN-Router. Ich suche ein Gerät, das es ermöglicht, ca. 50 VPN-Tunnel zu verwalten für eine Zentrale ...

question
Powershell Logon Script Problematikjoe2017Vor 1 TagFrageBatch & Shell19 Kommentare

Schönen guten Morgen, ich habe eine Frage an die Spezialisten hier. Denn ich bin gerade ratlos und am verzweifeln. Ich habe in meinem Domain Controler ...

question
Bewertung von Rechnern (Gewichtung von CPU, RAM und Festspeicher)SarekHLVor 1 TagFrageBenchmarks11 Kommentare

Hallo zusammen, ich habe hier eine Aufstellung verschiedener Rechner mit - Leistungsbewertung der CPU mit CPUMark (Quelle: - Größe Arbeitsspeicher - SSD oder HDD Wie ...

question
Was ist die beste Lösung für servergespeicherte Profile für 10 Rechner?Yan2021Vor 11 StundenFrageNetzwerke9 Kommentare

Hallo liebe Admin-User, in einem anderen Thread ging es um die Sicherung von Dienst-PCs per Image. Daraus entstand dann eine Diskussion über servergespeicherte Profile. Da ...

question
Hardware Empfehlung für Selbstbau Firewall mit pfSense bzw. OPNsensePete55Vor 9 StundenFrageFirewall12 Kommentare

Hallo Zusammen, an meinem Anschluss von Vodafone (Red Business Internet & Phone 500 Cable) habe ich als Firewall immer noch ein APU1D4 auf dem IPfire ...