Dateibarbeitung mit VBA (Reparatur von Einträgen in INIs)

11/02/2008 - 09:02 von Eric March | Report spam
Moin, Moin!

Ich hàtte, auch gerne um etwas zu lernen, eine Aufgabe in VBA gelöst.
Dass ich die Word-NG wàhle ist an sich Zufall (vielleicht, weil ich
innerhalb von Text-Dateien Wörter tauschen will? :-) )

Ziel der Aufgabe: in der in Ordnern platzierten DESKTOP.INI die
Zuweisung eines Icon-Pfades àndern. (IconFile=…)
Datei öffnen, Zeilenweise nach dem String suchen, Ausgabeziele anpassen
- das alles ist die geringste Übung und kein Problem. Die liegen wo anders…

Probleme:
1. Ich müsste innerhalb meiner Laufwerke erst einmal alle Desktop.Inis
erfassen. Dies wàre auch für andere Fàlle nützlich.
2. Aus welchen Gründen auch immer sind einige davon mit dem
Versteckt-Attribut versehen (nicht von mir…). Das hat zur Folge, dass
ich die Datei zwar mit Open-For-Input einsehen kann, ein Schreiben oder
ein Löschen mit Kill sind nicht drin. Was kann man da tun? (Anmerkung:
es geht nicht um Schreibrechte auf den Ordner an sich!)

Zu 2: Plan war Datei lesen und parallel in neue schreiben, Original
löschen und neue umbenennen. (Und selbst hier lief es auf Original
löschen, neue kopieren, neue Löschen hinaus weil ich kein Rename finde?)
Aus mir unbegreiflichen Gründen enthalten die Files sinnlose Leerzeilen
die mich einen zweiten Versuch unternehmen ließen: Datei nur gefiltert
in ein Array lesen und das anschließend in/als Original schreiben.

Ich habe mir (was 1. betràfe) mit DIR beholfen eine Liste aller
Desktop.Inis zu erstellen (dabei werden schon mal Umlaute zu
Störfaktoren; auch ein Hochkomma als Ordnername war unverdaulich) und
über SHELL die Attribute entfernt was nun beide Lösungswege erlaubte.
Dennoch ist das mehr als unbefriedigend.

Eric March

Kenne die Vergangenheit. In der Unwissenheit über die Vergangenheit
liegt das Verderben der Zukunft.
"Die Geschichte ist der beste Lehrmeister - mit den unaufmerksamsten
Schülern." Indira Gandhi
 

Lesen sie die antworten

#1 Eric March
13/02/2008 - 08:25 | Warnen spam
Eric March schrieb:
Moin, Moin!

Ich hàtte, auch gerne um etwas zu lernen, eine Aufgabe in VBA gelöst.
Dass ich die Word-NG wàhle ist an sich Zufall (vielleicht, weil ich
innerhalb von Text-Dateien Wörter tauschen will? :-) )

Ziel der Aufgabe: in der in Ordnern platzierten DESKTOP.INI die
Zuweisung eines Icon-Pfades àndern. (IconFile=…)
Datei öffnen, Zeilenweise nach dem String suchen, Ausgabeziele anpassen
- das alles ist die geringste Übung und kein Problem. Die liegen wo anders…

Probleme:
1. Ich müsste innerhalb meiner Laufwerke erst einmal alle Desktop.Inis
erfassen. Dies wàre auch für andere Fàlle nützlich.
2. Aus welchen Gründen auch immer sind einige davon mit dem
Versteckt-Attribut versehen (nicht von mir…). Das hat zur Folge, dass
ich die Datei zwar mit Open-For-Input einsehen kann, ein Schreiben oder
ein Löschen mit Kill sind nicht drin. Was kann man da tun? (Anmerkung:
es geht nicht um Schreibrechte auf den Ordner an sich!)

Zu 2: Plan war Datei lesen und parallel in neue schreiben, Original
löschen und neue umbenennen. (Und selbst hier lief es auf Original
löschen, neue kopieren, neue Löschen hinaus weil ich kein Rename finde?)
Aus mir unbegreiflichen Gründen enthalten die Files sinnlose Leerzeilen
die mich einen zweiten Versuch unternehmen ließen: Datei nur gefiltert
in ein Array lesen und das anschließend in/als Original schreiben.

Ich habe mir (was 1. betràfe) mit DIR beholfen eine Liste aller
Desktop.Inis zu erstellen (dabei werden schon mal Umlaute zu
Störfaktoren; auch ein Hochkomma als Ordnername war unverdaulich) und
über SHELL die Attribute entfernt was nun beide Lösungswege erlaubte.
Dennoch ist das mehr als unbefriedigend.




Ich könnte in der Tat etwas Hilfe wegen der Attribute gebrauchen. Im
Excel-Autostart und dem Autostart-Ordner hat sich das Entfernen des
Versteckt-Attribut als etwas làstig herausgestellt…

Eric March

Kenne die Vergangenheit. In der Unwissenheit über die Vergangenheit
liegt das Verderben der Zukunft.
"Die Geschichte ist der beste Lehrmeister - mit den unaufmerksamsten
Schülern." Indira Gandhi

Ähnliche fragen