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

Frage Entwicklung VB for Applications

DateiRenamer nach Listenwerten

Mitglied: vic666

vic666 (Level 1) - Jetzt verbinden

17.05.2010, aktualisiert 16:40 Uhr, 2118 Aufrufe, 7 Kommentare

Breche mit gerade die Finger

Folgendes Problem:
Ich habe eine Reihe von Dateien (PDF), diese müssen anhand einer Liste (CSV) automatisch umbenannt werden.
Der Aufbau der Liste ist:

Wert1, Wert2,....Wertn, <Pfad zum Dokument>

Der Wert1 soll der Dateiname werden.

Ich stelle mir folgenden Ablauf vor:

Öffnen der CSV-Datei, auslesen der ersten Zeile, trennen der Werte, (Array?), dann umbenennen der Datei, auslesen der nächsten Zeile bis Ende.
Das sollte doch mit den FSOs möglich sein?

Gruß
Mitglied: bastla
17.05.2010 um 17:13 Uhr
Hallo Vic666 und willkommen im Forum!

Ungetestet etwa so:
01.
CSV = "D:\Deine CSV-Datei.csv" 
02.
Delim = "," 'Feldtrennzeichen 
03.
 
04.
Set fso = CreateObject("Scripting.FileSystemObject") 
05.
T = Split(fso.OpenTextFile(CSV).ReadAll, vbCrLf) 
06.
For Each Line In T 
07.
    F = Split(Line, Delim) 
08.
    Neu = F(0) 
09.
    Alt = F(UBound(F)) 
10.
    If fso.FileExists(Alt) Then fso.GetFile(Alt).Name = Neu '& ".pdf" 
11.
Next
Da ich "Wert1" nicht kenne, habe ich in Zeile 10 noch dafür vorgesorgt, dass der Typ ".pdf" noch hinzugefügt werden muss - in diesem Fall einfach das Kommentarzeichen (') entfernen.

Nicht berücksichtigt (da von Dir auch nicht angesprochen) ist die Möglichkeit, dass es bereits eine gleichnamige Datei gibt.

Grüße
bastla
Bitte warten ..
Mitglied: vic666
18.05.2010 um 09:29 Uhr
Hallo Bastla,

Supi, vielen Dank! Dein code ist nicht nur gut, sondern sehr gut!!!

Bis auf ein kleines Problem, ich bekomme ein "List Index out of Bound" am Ende da T folgenden letzten Wert bekommt: : T(480) : "" : String
Den Fehler kann ich zwar mit einem on error abfangen, ist aber nicht gerade elegant.
Hast Du hier ad hoc eine Lösung?
Danke!
Gruß
vic666
Bitte warten ..
Mitglied: bastla
18.05.2010 um 11:11 Uhr
Hallo vic666!

Pack einfach die Zeilen 7 bis10 in einen "If"-Block:
If Trim(Line) <> "" Then
Grüße
bastla
Bitte warten ..
Mitglied: vic666
31.05.2010 um 15:41 Uhr
Hallo Bastla,

wie es immer so ist wenn ein Script erst einmal läuft dann kommen die weiteren Anforderungen und Ausnahmen hinzu:

Es kann in der CSV-Datei passieren, das Werte innerhalb von Delimitern Zeilenumbrüche enthalten, d.h. das der String sich über mehrere Zeilen hintereinander verteilt:

wert1, wert2, we
rt3,
wert4, wertn

Wie kriege ich das gebacken????

Grüße
Vic666
Bitte warten ..
Mitglied: bastla
31.05.2010 um 16:03 Uhr
Hallo vic666!
Es kann in der CSV-Datei passieren, das Werte innerhalb von Delimitern Zeilenumbrüche enthalten, d.h. das der String sich über mehrere Zeilen hintereinander verteilt:
Das wäre aber keine CSV-Datei mehr (da nicht mehr erkennbar, wo ein Satz = Zeile endet) - insofern wäre hier eher bei der Entstehung dieser seltsamen Datei anzusetzen ...

Sollte ich das aber falsch interpretiert haben und der Zeilenumbruch innerhalb des Feldes entspricht nicht dem Umbruch am Zeilenende (da zB nur LF ohne CR), sollte sich das per "Replace()" reparieren lassen, also etwa:
F = Split(Replace(Line,vbLf,""), Delim)
Grüße
bastla
Bitte warten ..
Mitglied: vic666
01.06.2010 um 09:38 Uhr
Hallo Bastla,

die "CSV-Datei" ist ein Export aus einer Anwendung heraus. Manipulieren kann ich hier nur leider die Feldbegrenzungs- und Trennzeichen. Und die Inhalte eines Wertes sind mit CR getrennt.
Noch mal zum Verständis der Satzaufbau an einem Besispiel:

Vorname, Nachname, Anschrift, Alter, (Dateipfad)[CR]
Vorname, Nachname, Anschrift(Teil1) [CR]
Anschrift(Teil2)[CR], Alter, (Dateipfad)[CR]
Vorname, Nachname, Anschrift(Teil1) [CR]
Anschrift(Teil2)[CR]
Anschrift(Teil3)[CR], Alter, (Dateipfad)[CR]

Gruß
vic666
Bitte warten ..
Mitglied: LotPings
01.06.2010 um 16:05 Uhr
Hallo vic666,

da zum Umbenennen ja ein existierender Dateipfad als letztes Element gefunden werden muss, liest du solange Zeilen ein, bis das zutrifft.
Die dazwischen liegenden, fürs Umbenennen nicht nötigen Angaben verwirfst du.

Gruß
LotPings
Bitte warten ..
Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 17 StundenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit25 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

Windows 10
Automatische daten kopieren, USB zu USB unter Win10 im Hintergrund
Frage von DerEisigeWindows 1016 Kommentare

Hallo Leute, ich bin auf der Suche nach einem Skript, dass von einem USB Stick automatisch nach dem einstecken ...