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 .unv mittels VBA auslesen

Mitglied: Brauseklaus

Brauseklaus (Level 1) - Jetzt verbinden

07.06.2010, aktualisiert 18.10.2012, 6308 Aufrufe, 6 Kommentare

Hallo,

hat jemand vielleicht Erfahrung mit dem Dateientyp *.unv? Ich will bestimmte Abschnitte aus dieser Datei (diverse Messdaten) in Excel importieren. UNV-Dateien lassen sich mittels Editor öffnen. Wenn ich diese dann als *.txt abspeichere kann ich die neue Datei problemlos mittels VBA auslesen. Leider habe ich hunderte dieser *.unv Dateien und kann nicht jede erst manuell in *.txt umwandeln.

Gibt es eine Möglichkeit *.unv mittels VBA direkt anzusprechen, sprich zu öffnen und dann auszulesen, oder gibt es einen Code sinngemäß wie „öffnen mit Editor“?

Der folgende Code wird zwar vom Debugger akzeptiert, jedoch findet der Rechner beim ausführen kein Ende und ich muss nach Stunden abbrechen.

01.
… 
02.
Datei = "Z:\Eigene Dateien\Projekt\Auswertung\inc10.unv" 
03.
Von = "WEAR" 'ab Zeile mit diesem Inhalt importieren 
04.
Bis = "-1" 'ab Zeile mit diesem Inhalt nicht mehr importieren 
05.
Trenn = " " 'Leerzeichen als Trennzeichen zwischen den Feldern 
06.
'Trenn = vbTab 'TAB als Trennzeichen zwischen den Feldern 
07.
 
08.
SpNr = 1 'Daten ab Spalte A ... 
09.
ZNr = 3 'der Zeile 3 eintragen 
10.
 
11.
 
12.
Set DateiEin = CreateObject("Scripting.FileSystemObject").OpenTextFile(Datei, 1, 0, -1) 'Textdatei im Unicode-Format öffnen 
13.
Grüße Brauseklaus
Mitglied: PCFJKG
07.06.2010 um 12:07 Uhr
Hallo Brauseklaus,

z.B. in Access mit Line Input

Dim Test as string
Open incl10.unv For Input As #1
Line Input #1, Test
close #1

---> den String in Test auswerten wie's beliebt, z.B. mit mid() o.ä

oder eine Schleife bis von incl10.unv alle Zeilen eingelesen wurden und die Auswertung nach jeder Zeile vornehmen.

Gruß
PCFJKG
Bitte warten ..
Mitglied: Brauseklaus
07.06.2010 um 15:34 Uhr
Hallo PCFJKG,

danke erstmal dafür.

leider habe ich bis jetzt keinerlei Access Erfahrung, aber wenn es nur auf diesem Wege zu machen ist, werde ich mich wohl, in einer ruhigen Minute, damit näher beschäftigen müssen.

Noch eine Frage: Habe mir, mit meinen sehr bescheidenen VBA Kenntnissen, einen vorläufigen Code zum einlesen von .*txt Dokumenten zusammen gebastelt. Die Werte sollen auf einem Tabellenblatt nebeneinander aufgelistet werden. Leider wird nur der 1.Block, sprich NORMALSTRESS importiert.
Kann da vielleicht mal jemand rüberschauen?

01.
Sub Importieren() 
02.
Datei = "\\Fem-k\Projekte\AlDi\UNV-Datein\zwei_symetrien\inc5.txt" 
03.
Von = "NORMALSTRESS" 'ab Zeile mit diesem Inhalt importieren 
04.
Bis = "FLOWSTRESS" 'ab Zeile mit diesem Inhalt nicht mehr importieren 
05.
Trenn = " " 'Leerzeichen als Trennzeichen zwischen den Feldern 
06.
'Trenn = vbTab 'TAB als Trennzeichen zwischen den Feldern 
07.
 
08.
SpNr = 1 'Daten ab Spalte A ... 
09.
ZNr = 3 'der Zeile 3 eintragen 
10.
 
11.
 
12.
Set DateiEin = CreateObject("Scripting.FileSystemObject").OpenTextFile(Datei, 1, 0, -1) 'Textdatei im Unicode-Format öffnen 
13.
Fertig = False 'Schalter initialisieren 
14.
Import = False 'Schalter initialisieren 
15.
Do While Not DateiEin.AtEndOfStream And Not Fertig 
16.
    Satz = DateiEin.ReadLine 'Datensatz aus Datei einlesen 
17.
    Satz = Replace(Satz, ".", ",") 
18.
    If Import Then 'Satz ist zu importieren 
19.
        If InStr(Satz, Bis) = 0 Then 'Ende des Datenbereiches noch nicht erreicht 
20.
            SatzEintragen Satz, ZNr, SpNr 'eingelesenen Satz in Tabellenzeile ZNr ab Spalte SpNr eintragen 
21.
            ZNr = ZNr + 1 'nächste Tabellenzeile 
22.
        Else 
23.
            Fertig = True 'Ende des vorgegebenen Bereiches - keine weiteren Daten einlesen 
24.
        End If 
25.
    Else 'bisher wurde nicht importiert - ... 
26.
        If InStr(Satz, Von) > 0 Then '... beginnt hier der Datenbereich? 
27.
            Import = True 'ja; ab jetzt Zeilen importieren 
28.
            SatzEintragen Satz, ZNr, SpNr 'eingelesenen Satz in Tabellenzeile ZNr ab Spalte SpNr eintragen 
29.
            ZNr = ZNr + 1 'nächste Tabellenzeile 
30.
        End If 
31.
    End If 
32.
Loop 
33.
 
34.
Von = "TEMPERATURE" 'ab Zeile mit diesem Inhalt importieren 
35.
Bis = "PREV_PRESS" 'ab Zeile mit diesem Inhalt nicht mehr importieren 
36.
Trenn = " " 'Leerzeichen als Trennzeichen zwischen den Feldern 
37.
'Trenn = vbTab 'TAB als Trennzeichen zwischen den Feldern 
38.
 
39.
SpNr = 8 'Daten ab Spalte H ... 
40.
ZNr = 3 'der Zeile 3 eintragen 
41.
 
42.
Fertig = False 'Schalter initialisieren 
43.
Import = False 'Schalter initialisieren 
44.
Do While Not DateiEin.AtEndOfStream And Not Fertig 
45.
    Satz = DateiEin.ReadLine 'Datensatz aus Datei einlesen 
46.
    Satz = Replace(Satz, ".", ",") 
47.
    If Import Then 'Satz ist zu importieren 
48.
        If InStr(Satz, Bis) = 0 Then 'Ende des Datenbereiches noch nicht erreicht 
49.
            SatzEintragen Satz, ZNr, SpNr 'eingelesenen Satz in Tabellenzeile ZNr ab Spalte SpNr eintragen 
50.
            ZNr = ZNr + 1 'nächste Tabellenzeile 
51.
        Else 
52.
            Fertig = True 'Ende des vorgegebenen Bereiches - keine weiteren Daten einlesen 
53.
        End If 
54.
    Else 'bisher wurde nicht importiert - ... 
55.
        If InStr(Satz, Von) > 0 Then '... beginnt hier der Datenbereich? 
56.
            Import = True 'ja; ab jetzt Zeilen importieren 
57.
            SatzEintragen Satz, ZNr, SpNr 'eingelesenen Satz in Tabellenzeile ZNr ab Spalte SpNr eintragen 
58.
            ZNr = ZNr + 1 'nächste Tabellenzeile 
59.
        End If 
60.
    End If 
61.
Loop 
62.
 
63.
Von = "WEAR" 'ab Zeile mit diesem Inhalt importieren 
64.
Bis = "-1" 'ab Zeile mit diesem Inhalt nicht mehr importieren 
65.
Trenn = " " 'Leerzeichen als Trennzeichen zwischen den Feldern 
66.
'Trenn = vbTab 'TAB als Trennzeichen zwischen den Feldern 
67.
 
68.
SpNr = 12 'Daten ab Spalte L ... 
69.
ZNr = 3 'der Zeile 3 eintragen 
70.
 
71.
 
72.
Fertig = False 'Schalter initialisieren 
73.
Import = False 'Schalter initialisieren 
74.
Do While Not DateiEin.AtEndOfStream And Not Fertig 
75.
    Satz = DateiEin.ReadLine 'Datensatz aus Datei einlesen 
76.
    Satz = Replace(Satz, ".", ",") 
77.
    If Import Then 'Satz ist zu importieren 
78.
        If InStr(Satz, Bis) = 0 Then 'Ende des Datenbereiches noch nicht erreicht 
79.
            SatzEintragen Satz, ZNr, SpNr 'eingelesenen Satz in Tabellenzeile ZNr ab Spalte SpNr eintragen 
80.
            ZNr = ZNr + 1 'nächste Tabellenzeile 
81.
        Else 
82.
            Fertig = True 'Ende des vorgegebenen Bereiches - keine weiteren Daten einlesen 
83.
        End If 
84.
    Else 'bisher wurde nicht importiert - ... 
85.
        If InStr(Satz, Von) > 0 Then '... beginnt hier der Datenbereich? 
86.
            Import = True 'ja; ab jetzt Zeilen importieren 
87.
            SatzEintragen Satz, ZNr, SpNr 'eingelesenen Satz in Tabellenzeile ZNr ab Spalte SpNr eintragen 
88.
            ZNr = ZNr + 1 'nächste Tabellenzeile 
89.
        End If 
90.
    End If 
91.
Loop 
92.
DateiEin.Close 'Textdatei schließen 
93.
MsgBox "Fertig." 
94.
End Sub 
95.
 
96.
Sub SatzEintragen(D, Z, S) 
97.
Do While InStr(D, "  ") > 0 'solange es noch zwei aufeinanderfolgende Leerzeichen im Satz gibt ... 
98.
    D = Replace(D, "  ", " ") ' ... diese durch ein einzelnes ersetzen 
99.
Loop 
100.
Felder = Split(D) 'Zeile in Felder zerlegen 
101.
Cells(Z, S).Resize(1, UBound(Felder) + 1).Value = Felder 'in der Zeile Z die Spalten ab Spalte S mit den Feldwerten füllen 
102.
End Sub 
103.
 
Wenn ich
01.
 Set DateiEin = CreateObject("Scripting.FileSystemObject").OpenTextFile(Datei, 1, 0, -1)
in Zeile 41 und 71 einsetze wird auch die Temperartur eingelesen (2.Teil), der 3. Teil ("WEAR") fehlt weiterhin. Dazu kommt es zum "Laufzeitfehler 1004...Anwendungs- oder objektdefinierter Fehler".

Achja, ich nutze Excel 2003.

Grüße Brauseklaus
Bitte warten ..
Mitglied: PCFJKG
07.06.2010 um 17:18 Uhr
Hallo Brauseklaus,

Du hast sicher an meiner kurzen Antwort schon gemerkt, dass ich momentan ein Zeitproblem habe. Trotzdem kurzer Hinweis (der schwierig ist, weil ich denAufbau der .txt nicht kenne.

Muss nicht der Datensatzzeiger vor dem Lesen von WEAR neu gesetzt (positioniert) werden, damit er vor den betreffen Zeile zu lesen beginnt ?

Grüße
PCFJKG
Bitte warten ..
Mitglied: Brauseklaus
07.06.2010, aktualisiert 18.10.2012
Hi,
kein Problem, ich bin für jede Kleinigkeit dankbar ;)

Habe mich bis hierher in einem anderem Thread hingearbeitet, der bastla hat mir da schon sehr weitergeholfen. Hier der Link: https://www.administrator.de/forum/definierten-abschnitt-aus-textdokumen ...
Dort ist auch der prinzipielle Aufbau der *.unv bzw. *.txt- Dokumente beschrieben.


Zitat von PCFJKG:
>
Muss nicht der Datensatzzeiger vor dem Lesen von WEAR neu gesetzt (positioniert) werden, damit er vor den betreffen Zeile zu lesen
beginnt ?
Wird er das nicht in Zeile 63, 64? Und die Textdatei müsste doch bis Zeile 92 noch zur Verfügung stehen...
Bitte warten ..
Mitglied: Brauseklaus
07.06.2010 um 21:10 Uhr
Habe den Fehler gefunden. Der CODE ist mit meiner Ergänzung soweit richtig. Der Grund für den Abbruch des Programmes war, dass beim Eintragen in die Tabelle die TEMPERATURE-Werte die maximale Zeilenanzahl von 65536 überschritten wurde.....

Grüße Brauseklaus
Bitte warten ..
Ähnliche Inhalte
Microsoft Office

VBA zum auslesen von einem Zellbereich Excel

gelöst Frage von schwalbepilotMicrosoft Office1 Kommentar

Hallo, leider bin ich mit Makros noch nicht su vertraut. Ich habe in einen Ordner mehrere hunderte Datein. Alles ...

VB for Applications

Mit VBA Zertifikate auslesen

gelöst Frage von it4baerVB for Applications3 Kommentare

Hallo, ist es möglich mit VBA Zertifikate auszulesen? Ich habe *.crt Dateien, aus diesen möchte ich z.B. Aussteller in ...

VB for Applications

VBA Dateieigenschaften auslesen

gelöst Frage von Gimli3311VB for Applications9 Kommentare

Guten Morgen Zusammen, ich brauch mal wieder eure Hilfe. Mein Vorhaben ist das ich bei allen gefundenen Excel Dateien ...

Basic

Matrix auslesen VBA

gelöst Frage von KavachiBasic6 Kommentare

Hallo liebe Leute, ich habe folgendes Problem. Ich versuche KFZ-Steuern in mehreren Ländern für eine Seminararbeit zu berechnen. Dazu ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 21 StundenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 1 TagRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 1 TagSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 2 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit18 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk13 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...