| |
Visual-Basic EinsteigerSource eines VB6-Projektes zeilenweise auslesen | | | Autor: crosstravel | Datum: 29.10.19 10:09 |
| Hallo zusammen,
ich suche ein Beispiel, wie alle FRM eines Projektes ausgelesen werden können. Konkret will ich z.B. in den verschiedenen FRm den String "Cull23o.ocx" suchen und durch "Cull25o.ocx" ersetzen.
Ich glaube, vor langer Zeit einmal ein solches Script hier gefunden zu haben - kann es aber leider nicht mehr finden. Vielleicht kann mir jemand helfen.
Danke
Rainer | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: effeff | Datum: 29.10.19 12:22 |
| Jeder Texteditor sollte dazu in der Lage sein, Deine Wünsche zu erfüllen. Sehr gut geeignet sollte Notepad++ sein. Öffne damit alle Deine FRM-Dateien und ersetze damit den gewünschten Text in diesen.
EALA FREYA FRESENA | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: crosstravel | Datum: 29.10.19 14:26 |
| Hallo,
danke für Deine Antwort. Soweit ich den Notepad++ kenne, muss ich hier ein Form nach dem anderen aufrufen. Das will ich eben vermeiden. Ich habe in einem Ordner ca. 20'0 Forms, in welchen Werte ersetzt werden sollen. Dabei gibt es auch FRorms, welche den gesuchten Wert nicht enthalten.
Ich habe mir vorgestellt, dass ein Script Form nach Form liest, den Vergleichswert sucht und diesen dann ersetzt.
Gruss
Rainer | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: Zardoz | Datum: 29.10.19 15:22 |
| Hallo Rainer,
probier' mal dies:
Controls: FileListBox
Dim i&, Dat1$, Txt$, OldTxt$, NewTxt$
File1.Path = "D:\Programme\Projektordner"
File1.Pattern = "*.frm;*.bas"
OldTxt = "AlterText"
NewTxt = "NeuerText"
For i = 0 To File1.ListCount - 1
Dat1 = File1.Path & "\" & File1.List(i)
Open Dat1 For Binary Access Read As #1
Txt = Space$(LOF(1))
Get #1, , Txt
Close #1
If InStr(1, Txt, OldTxt, vbTextCompare) > 0 Then
Txt = Replace(Txt, OldTxt, NewTxt)
Kill Dat1
Open Dat1 For Binary Access Write As #1
Put #1, , Txt
Close #1
End If
DoEvents
Next i Gruss,
Zardoz | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: crosstravel | Datum: 29.10.19 17:38 |
| Hi Zardoz,
danke für das Posting. Genau solch ein Script hatte ich gesucht. Ich werde es morgen testen und Feedback geben.
Nochmals vielen Dank und schönen Abend
Rainer | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: crosstravel | Datum: 30.10.19 12:43 |
| Hallo Zardoz,
ich bin dabei, das von Dir gepostete Beispiel zu testen. Als ersten Schritt versuche ich dabei
die FileListBox mit den diversen Forms zu füllen, um diese dann in einer Schleife abzuarbeiten.
Ich bekomme das Füllen der ListBox nicht hin. Die Forms liegen in dem Verzeichnis:
C:\Programme(x86)\Entwicklung\Frm\
Wie kann ich ich diese Forms nun diese Forms in die ListBox laden?
Danke
Rainer | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: Zardoz | Datum: 30.10.19 14:09 |
| Hallo Rainer,
also um den Programmcode zu testen must du die Filelistbox nicht
befüllen. Das passiert schon im Code. Du must nur bei File1.Path ="..."
den Pfad deines Ordners eintragen. Was hast du denn vor? Willst
du mehrere Projekte bearbeiten? Dir ist schon bekannt, das du in
der Entwicklungsumgebung mit der Funktion Suchen und Ersetzen (Strg H)
projektweit Texte ändern kannst.
Gruss,
Zardoz | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: crosstravel | Datum: 30.10.19 14:35 |
| Hallo Zardoz,
ich hatte mich im letzten Posting leider nicht genau ausgedrückt. Das ersetzen funktioniert bestens.
Ich habe eine Form gemacht mit DriveBox, DirBox und FileListBox. Wenn ich dden entsprechenden Folder
so auswähle, sollte die FileListBox mit dem Inhalt des Folders angezeigt werden - das geschieht abre
nicht. Der alte Inhalt bleibt erhalten. Ich muss schauen, wie ich das hinbekomme.
Ich habe über 300 Forms in meinem Projekt. Für die Druckerein setze ich List&Label ein. Hier gibt es
jedes Jahr einen neuen Release. Dumm ist nur, dass die Componenten umbenannt werden. Von z.B. Cull23o.ocx in Cull25o.ocx usw. - So muss ich jedes Jahr die betroffenen Forms anpassen, was händisch ein grosser Aufwand ist und aussderdem fehleranfällig ist.
Gruss
Rainer | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: Zardoz | Datum: 30.10.19 15:11 |
| Hallo Rainer,
das sollte funktionieren:
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub Bei meinem Code das File1.Path = "D:\Programme\Projektordner" weglassen.
Gruss,
Zardoz | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: crosstravel | Datum: 30.10.19 16:35 |
| Hi Zardoz,
das funktioniert bestens. Vielen Dank für Deine Unterstützung.
Herzlichen Gruss
Rainer | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: W. Wolf | Datum: 05.11.19 13:57 |
| Hallo,
solltest Du solche Sachen öfter machen müssen, gibt es dafür ein mächtiges Tool:
https://www.gillmeister-software.de/produkte/batch-text-replacer/start.aspx
Ich konnte bisher damit alle meine Ersetzungs-Jobs erledigen und ich kann sagen, da waren ein paar sehr komplexe Aufgaben dabei.
Schönen Gruß
W. Wolf | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: crosstravel | Datum: 05.11.19 14:33 |
| Hallo,
besten Dank für die Information. Ich werde mir das Tool anschauen.
Einen schönen Tag
Rainer | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: emaNoN | Datum: 15.11.19 15:33 |
| Notepad++ kann das in einem Rutsch erledigen.
| |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: crosstravel | Datum: 18.11.19 12:50 |
| Hallo,
kann es auch einen ganzen Ordner (mit ca. 380 frm) in einem Rutsch verarbeiten?
Gruss
Rainer | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: crosstravel | Datum: 18.11.19 13:00 |
| Hallo,
ich habe das eben testen können. Auf den ersten Blick funktioniert es mit Notepad++. Vielen Dank für den guten Hinweis.
Gruss
Rainer | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: Wobi | Datum: 19.11.19 03:10 |
| Hallo Rainer,
warum brauchst du denn da überhaupt etwas externes?
Die Suchfunktion innerhalb der VB6 IDE bietet doch auch an innerhalb des aktuellen Formula, Modul, Preojekt zu suchen bzw. gleich zu ersetzten.
Das über externe Programme zu machen ist mir viel zu unsicher, die arbeiten zwar gut und gründlich, aber die Gefahr besteht, dass etwas ausgetauscht wird was gar nicht beabsichtigt ist.
Gruß
Frank | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: effeff | Datum: 23.11.19 14:47 |
| //Die Suchfunktion innerhalb der VB6 IDE bietet doch auch an innerhalb des aktuellen Formula, Modul, Preojekt zu suchen bzw. gleich zu ersetzten.//
Ging es nicht darum, zig Dateien in zig Verzeichnissen nach bestimmtem, zu ersetzenden Text zu durchsuchen? Das kann die VB6-IDE nicht.
//Das über externe Programme zu machen ist mir viel zu unsicher, die arbeiten zwar gut und gründlich, aber die Gefahr besteht, dass etwas ausgetauscht wird was gar nicht beabsichtigt ist.//
Bei einem einfachen Ersetzen in Textdateien?
Notepad++ war auch von mir als Lösung genannt und funktioniert hervorragend. Unter Windows benutze ich es hauptsächlich.
EALA FREYA FRESENA | |
Re: Source eines VB6-Projektes zeilenweise auslesen | | | Autor: crosstravel | Datum: 24.11.19 15:38 |
| Hallo effeff,
richtig, Du hattest auch Notepadd++ als Lösung genannt. Zum Damilen Zeitpunkt hatte ich aber leider dessen Einsatzmöglichkeiten nicht erkannt. Nach umfangreichen Tests mit der Konvertierung verschiedener Texte in mehreren 100 Forms eines Ordners kann ich jedoch bestätigen, dass dieses Tool geeignet ist, um "auf einen Rutsch" die gewünschten Konvertierungen in zig Forms und Modulen durchzuführen.
Vielen Dank nochmals
Rainer | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|