tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
1099
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    dark_mascot dark_mascot ist offline Mitglied
    Registriert seit
    Jan 2005
    Beiträge
    18
    Hallo,

    ich bin ein totaler VB-Anfänger und habe folgendes Problem:

    1) Ein Nutzer soll eine (oder mehrere) Dateien (Dateiname.plt)
    aus einem Verzeichnis auswählen können.
    (habe im Buch was von einer ShowOpen-Methode und
    cdlOFNAllowMultiset Option gelesen, aber da war
    kein Beispiel-Quellcode dabei (+ CurDir-Fkt) und ich weiß
    nun nicht wie ich das Umsetzen muss)

    2) Die Datei hat folgenden Aufbau:

    Title = "2252"
    VARIABLES = "t", "x_wf", "y_wf", "z_wf", "mx_wf", "my_wf", "mz_wf", "mpm", "beta", "phi", "alpha"
    ZONE T = "Zone 1416", i = 12018
    0 3.8246 0.1389 0.5251 -0.0061 0.4260 0.0057 1. 0.7902 -0.2380 -10.7312
    0.000340000000000007 3.8471 0.1409 0.5533 0.0021 0.4399 0.0019 1. 0.7899 -0.2380 -10.7310
    0.00068000000000002 3.8515 0.2308 0.5314 0.0028 0.4459 -0.0043 1. 0.7898 -0.2381 -10.731
    0.02013 3.8866 0.1283 0.6448 -0.0038 0.4574 0.0036 1. 0.7906 -0.2399 -10.7290
    ...

    Zeile1 =Titel
    Zeile2 = Unterschiedliche Anzahl Variablen
    Zeile3 = Zohnenbezeichnung + Variable i (i=Anzahl der folgenden Datenzeilen)
    Zeile4 bis Zeile (4+i) = Datenzeilen, Zahlen sind durch "Tab" voneinander getrennt
    Jede Spalte ist einer Variable zugeordnet (1.Variable=1.Spalte, 2.Variable=2.Spalte usw.)

    => ich muss jetzt irgendwie die ersten drei Zeilen einzeln auslesen
    und die Titel, Zohne-T und i als Variablen übernehmen und die Variablen aus Zeile 2 in ein Array speichern.
    Dann muss ich zudem jede "Zahlen"-Spalte auch in ein Array abspeichern, da jede
    Spalte später seperat bearbeitet werden muss.

    Ich weiß nun aber nicht genau wie ich mit meiner Umsetzung beginnen soll,
    da ich nur PHP und etwas C++ programmieren kann und nun jene Problematik
    in VB umsetzen soll.

    Kann mir jemand Quellcode-Ansätze geben, wie man die Datei vom User
    auswählen lassen kann, wie ich einzelne Zeilen ansprechen kann und nur bestimmt
    Informationen in Strings/Arrays gespeichert bekomme?


    Danke für eure Hilfe
    Dark_Mascot
    Geändert von dark_mascot (31.01.05 um 13:48 Uhr)
     

  2. #2
    Merlin_78 Tutorials.de Gastzugang
    Hi dark_mascot,

    zu Punkt 1:
    Das bezieht sich auf das Microsoft Common Control.
    Code :
    1
    2
    3
    4
    5
    6
    
    Const cdlOFNAllowMultiselect = &H200
     
    CommonDialog1.Flags = cdlOFNAllowMultiselect
    CommonDialog1.FileName = "*.plt"
    CommonDialog1.Filter = "*.plt"
    CommonDialog1.ShowOpen
     

  3. #3
    Merlin_78 Tutorials.de Gastzugang
    Hi dark_mascot,

    zu Punkt 2:
    die ausgewählten Dateinamen bekommst du mit CommonDialog1.FileName
    Wurde nur eine Datei ausgewählt, sieht der Rückgabewert so aus: C:\Daten\Dateiname.plt
    Bei mehreren Dateien wird der String mit Leerzeichen unterteilt: C:\Daten\ Dateiname1.plt Dateiname2.plt ...

    Zum Öffnen der Dateien kannst du die Open-Funktion nutzen.
    Open Dateiname.plt For Input As #Dateinummer

    Werte holst du dir mit Line Input aus der Datei
    Line Input #Dateinummer, Speichervariable

    Für die weitere Bearbeitung mußt du dir mal die String-Funktionen Left$, Right$ und Instr anschauen. In deinem Fall wird auch die Split-Funktion interessant sein.
     

  4. #4
    dark_mascot dark_mascot ist offline Mitglied
    Registriert seit
    Jan 2005
    Beiträge
    18
    Danke euch

    MfG
    Dark_Mascot
     

  5. #5
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    Ich würde dir empfehlen, die Datei mal ganz auszulesen und in ein Array zu spitten:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    Dim FFile As Integer, varName As String, varInhalt As String, varZeilen() As String
     
    varName = "C:\Text.txt" 'hier kannst du auch den Namen mit dme CommonDialog einfügen
    varInhalt = Space(FileLen(varName))
    FFile = FreeFile
     
    Open varName For Binary As FFile
     Get FFile, , varInhalt
    Close FFile
     
    varZeilen = Split(varInhalt, vbNewLine)

    Damit hast du die ganze Datei in das Array varZeilen eingelesen und kannst so die Zeilen einfach über die Indexnummer des Arrays (Index = Zeile - 1) auslesen.


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 25.11.08, 14:30
  2. Antworten: 1
    Letzter Beitrag: 19.09.05, 20:02
  3. Auslesen aus nach einem bestimmten Datum
    Von Svenja_Berlin im Forum PHP
    Antworten: 28
    Letzter Beitrag: 31.03.05, 00:36
  4. Oracle - Tabelle von einem Schema in ein anderes Schema verschieben
    Von Plumpsi im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 15.09.04, 10:26
  5. Datei durchsuchen nach einem bestimmten String
    Von Friesi im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 2
    Letzter Beitrag: 11.09.04, 12:08