Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Probleme beim Einlese von .txt

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
Autor Thema:  Probleme beim Einlese von .txt (704 mal gelesen)
jimbo3
Mitglied



Sehen Sie sich das Profil von jimbo3 an!   Senden Sie eine Private Message an jimbo3  Schreiben Sie einen Gästebucheintrag für jimbo3

Beiträge: 13
Registriert: 21.01.2009

Civil 3D 2009

erstellt am: 28. Jan. 2009 14:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Wiedermal ein Hallo an Alle!

Habe ein Problem beim Einlesen von TXT-Dateien.
Ich erstelle mit folgendem Code eine TXT-datei:

Private Sub Übernehmen_Click()
Dim min(1 To 10)
Dim max(1 To 10)

min(1) = min1
min(2) = min2
min(3) = min3
min(4) = min4
min(5) = min5
min(6) = min6
min(7) = min7
min(8) = min8
min(9) = min9
min(10) = min10

max(1) = max1
max(2) = max2
max(3) = max3
max(4) = max4
max(5) = max5
max(6) = max6
max(7) = max7
max(8) = max8
max(9) = max9
max(10) = max10

Open "c:\Verzeichnis\datei.txt" For Output As #1
    Print #1, "min", "max"
    For I = 1 To 10
        If min(I) & max(I) > 0 Then
            Print #1, min(I) & vbTab & max(I)
        End If
    Next
Close #1
End Sub

Die Werte min1 - min10 bzw. max1 - max10 sind Textfelder in einem Formular.
Diese werden mit obigen Code in eine TXT geschrieben um sie beim Schließen der Zeichnung nicht zu verlieren.

Ich möchte nun beim Starten meines Programmes per Button abfragen ob es die Datei.txt gibt, wenn ja danach die Werte wieder in meine Textfelder im Formular eintragen.

Bitte um Hilfe beim Lösungsansatz.

------------------
Danke

Jimbo3

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 28. Jan. 2009 16:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

eine nicht schöne, aber schnelle Vorgehensweise wäre einfach Du versuchst die TXT-Datei zu öffnen und prüfst auf Fehler:

Code:
On Error Resume Next
Dim tFnr as Integer
tFnr = FreeFile  'du weisst ja nicht, on 1 schon verwendet ist, damit erhältst Du sicher die nächste FREIE Nummer
Open "c:\Verzeichnis\datei.txt" For Input As #1
if Err.Number = 0 then
  'dann darfst Du mit einlesen anfangen
else
  'da ist Fehler aufgetreten, Fehlermeldung oder was auch immer
End If

Die schönere Methode wäre, über das Microsoft.Scripting-Objekt zu prüfen, ob die Datei existiert, benötigt aber Verweise und das kann auch andere negative Auswirkungen haben. Und auch wenn das Err.-Handling ziemlich viel Zeit kosten kann, nehme ich doch an, dass Du das nicht 1000mal pro Sekunde aufrufst.

Beantwortet das Deine Frage?

- alfred -

------------------
www.hollaus.at

jimbo3
Mitglied



Sehen Sie sich das Profil von jimbo3 an!   Senden Sie eine Private Message an jimbo3  Schreiben Sie einen Gästebucheintrag für jimbo3

Beiträge: 13
Registriert: 21.01.2009

Civil 3D 2009

erstellt am: 28. Jan. 2009 17:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Besten Dank Alfred,

werde deinen Code gleich probieren.
Der Code bzw. die Abfrage wird max. 1-2 mal pro Tag aufgerufen.

Aber leider habe ich auch keine Ahnung wie ich die Daten aus dem Textfile wieder auslesen und meinen Feldern zuordnen kann. Könntest du mir bitte da auch noch einen Anstoß geben?

------------------
Danke

Jimbo3

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 28. Jan. 2009 20:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi

Code:
Public Sub test2()
  On Error Resume Next
  Dim tFnr As Integer
  tFnr = FreeFile  'du weisst ja nicht, on 1 schon verwendet ist, damit erhältst Du sicher die nächste FREIE Nummer
  Open "c:\Verzeichnis\datei.txt" For Input As #1
  If Err.Number = 0 Then
    'dann darfst Du mit einlesen anfangen
   
    Dim tMin() As Variant
    Dim tMax() As Variant
    Dim tLineStr As String  'da wird eine ganze Textzeile zwischengespeichert
    Dim tLinesRead As Integer
   
    Do While Not EOF(tFnr)
        tLineStr = ""
        Line Input #tFnr, tLineStr 'einlesen der Textzeile
        If Len(Trim(tLineStr)) > 0 Then  'pruefen ob leer
            Dim tFields() As String
            tFields = Split(tLineStr, vbTab) 'teilen in spalten, getrennt durch tab
            If UBound(tFields) >= 1 Then
              'dann ist's ok
              ReDim Preserve tMin(tLinesRead)
              ReDim Preserve tMax(tLinesRead)
              tMin(tLinesRead) = tFields(0)
              tMax(tLinesRead) = tFields(1)
              tLinesRead = tLinesRead + 1
            Else
              'die datenzeile stimmt von syntax her nicht
            End If
        Else
            'ok, steht nix drin, mach ma auch nix
        End If
    Loop
   
  Else
    'da ist Fehler aufgetreten, Fehlermeldung oder was auch immer
  End If
  Close #tFnr
End Sub


Wenn Fragen dazu sind, lass es mich wissen, viel Erfolg,
- alfred -

------------------
www.hollaus.at

jimbo3
Mitglied



Sehen Sie sich das Profil von jimbo3 an!   Senden Sie eine Private Message an jimbo3  Schreiben Sie einen Gästebucheintrag für jimbo3

Beiträge: 13
Registriert: 21.01.2009

Civil 3D 2009

erstellt am: 28. Jan. 2009 21:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke vielmals, melde mich gerne wieder.
Gebe dann über meinen Erfolg (hoffentlich) bescheid.

------------------
Danke

Jimbo3

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2025 CAD.de | Impressum | Datenschutz