Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  CSV - Dateien einlesen

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
Autor Thema:  CSV - Dateien einlesen (4623 mal gelesen)
Stagladasy
Mitglied
Ingenieur


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

Beiträge: 21
Registriert: 02.01.2007

erstellt am: 05. Jan. 2007 14:59    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

Hilfe,

versuche gerade mit VBA unter AutoCAD 2002 csv-Dateien anzusprechen und aus ihnen gezielt Werte herauszuholen um sie anschließend Variablen zuzuweisen. Kann mir von Euch jemand weiterhelfen?

Danke

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 05. Jan. 2007 15:35    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 Nur für Stagladasy 10 Unities + Antwort hilfreich

Hallo,

die Könnte man vorher in Excel einlesen oder

du liest die Datei z.B. mit line input#1, Zeile und bröselts sie Felder mit Hilfe der Funktion Split in ein Variant Array auf. Da kannst du die Felder ja lesen und auswerten.

Stelli

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

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

Stagladasy
Mitglied
Ingenieur


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

Beiträge: 21
Registriert: 02.01.2007

erstellt am: 06. Jan. 2007 15:42    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


Schnee.zip

 
Hallo Stelli,

erstmal danke für Deine Antwort. Ich habe nun schon eine ganze Zeit hin und her probiert bin aber zu keinem brauchbarem Ergebnis gekommen. Falls Du mir mit einem kleinem Programmcode unter die Arme greifen könntest, mit dem es möglich ist die beigefügte csv-Datei als Array, ohne die Verwendung von Excel, einlesen zu können wäre das echt prima.

Vielen Dank

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 06. Jan. 2007 16:35    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 Nur für Stagladasy 10 Unities + Antwort hilfreich

Hallo,

versuchs doch mal so

Code:
Sub test()
    Dim Datei As String
    Dim DatenZeile As String
    Dim AnzZeilen As Long
    Dim Kanal As Integer
    Dim Feld As Variant
    Dim i As Integer
   
    Datei = "C:\temp\schnee.csv"
    Kanal = FreeFile
    Open Datei For Input As #Kanal
    While Not EOF(Kanal)
        AnzZeilen = AnzZeilen + 1
        Line Input #Kanal, DatenZeile
        Feld = Split(DatenZeile, ";")
        For i = LBound(Feld) To UBound(Feld)
            Debug.Print "Zeile " & AnzZeilen & " Feld " & i & ": " & Feld(i)
        Next i
    Wend
    Close (Kanal)

End Sub



Stelli

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

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

startrek
Moderator
Architekt


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

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 06. Jan. 2007 16:39    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 Nur für Stagladasy 10 Unities + Antwort hilfreich

Hallo,

mal als kleiner Ansatz, wobei die csv rechteckig! aufgebaut sein muss,
sonst wird's Mist;-)

Code:

Sub x()
    Dim Feld
    Feld = toArray("d:\Schnee.csv")
    Stop
End Sub

Function toArray(Datei As String) As Variant
    Dim fso As Object, s$, sr, r&, c%
    Set fso = CreateObject("scripting.filesystemobject")
    s = fso.GetFile(Datei).OpenAsTextStream.ReadAll
    sr = Split(s, Chr(13))
    ReDim arr(0 To UBound(sr) - 1, 0 To UBound(Split(sr(0), ";"))) 'EOF in sr() drin?
    For r = 0 To UBound(arr, 1)
        For c = 0 To UBound(arr, 2)
            arr(r, c) = Split(sr(r), ";")(c)
        Next
    Next
    toArray = arr
End Function



Gruß, Nancy [edit: ... die immer too late ist] 

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

Stagladasy
Mitglied
Ingenieur


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

Beiträge: 21
Registriert: 02.01.2007

erstellt am: 09. Jan. 2007 14:15    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

Vielen Dank Nancy und Stelli, das war genau das wonach ich gesucht habe!
Damit habt Ihr mir in meiner Master Thesis ein gutes Stück weitergeholfen.


Gruß Uwe

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

Maximilianus
Mitglied
PLM-Consultant


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

Beiträge: 136
Registriert: 28.05.2004

Catia V5 21
CADENAS PARTsolutions / Exalead OnePart
V8.1.09 / V9.0.8
Windows 2000/XP/2003 Server/2010, HP-UX, Linux

erstellt am: 23. Apr. 2007 09:10    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 Nur für Stagladasy 10 Unities + Antwort hilfreich

Hallo,
weil das hier gut dazupasst, hänge ich es mal gleich an:

Ich habe ebenfalls eine CSV-Datei, die wie folgt aussieht:

Suchwert1; Zielwert1
Suchwert2; Zielwert2
Suchwert3; Zielwert3
Suchwert4; Zielwert4
...

Das Skript liefert einen Suchwert, zu dem aus der CSV der passende Zielwert gesucht und an eine Variable übergeben werden soll.

Hat dazu jemand eine Idee? Ich komme mit der Suche im Array nicht zurecht, wie dass aussehen muss. Ich formuliere es mal so:

While not EOF
Wenn Suchwert = SucherwertX
  Dann
  Zielwert = ZielwertX
  exit Function

Hat jemand eine Idee? Das ganze in VBScript.

Maximilianus

------------------
Maximilianus
Dipl.-Ing. (Wi-Ing ET)
PLM-Consultant

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 23. Apr. 2007 09:50    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 Nur für Stagladasy 10 Unities + Antwort hilfreich

Hallo,

da ar auch schon mal die Variante anderes herum.
Schreiben einer CSV
Da brauchst du nur noch zwei Funktionen hinzufügen.
- eine Funktion die die Zeile sucht in dem der Wert vorkommt
- eine Funktion die den Wert aus Spalte und Zeile zurückgibt

Das mit deiner Schleife ist auf jeden Fall der richtige Ansatz.

Nach deinem Profil hast du Catia. Mit welcher Art von VB arbeitest du denn ?

Stelli

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

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

Maximilianus
Mitglied
PLM-Consultant


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

Beiträge: 136
Registriert: 28.05.2004

erstellt am: 23. Apr. 2007 11:28    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 Nur für Stagladasy 10 Unities + Antwort hilfreich

Das läuft außerhalb von CATIA, nämlich im VBS-Interpreter von PARTsolutions. Der versteht normales VBS.

Danke für den Hinweis, werde ich mir anschauen.
Maximilianus

------------------
Maximilianus
Dipl.-Ing. (Wi-Ing ET)
PLM-Consultant

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)2023 CAD.de | Impressum | Datenschutz