Announcement

Collapse
No announcement yet.

Datei Lesen/Schreibe mit VS.net pro. Aber wie ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datei Lesen/Schreibe mit VS.net pro. Aber wie ?

    Halle Leute, ehe ich ganz verzeifele, melde ich mich lieber bei euch.

    Ich bin seit kurzem in Besitz von dem Visual Studio.net Pro und versuche einige Testprogramme zu implentieren. Die Komponentenbenutzung ist soweit ja recht einfach und verständlich. Jetzt zu meinem Problem.

    Wie schreibe, bzw lese ich Dateien auf dem permanenten Speicher ?

    Es gibt 2 Komponenten die ich benutzen kann: Save- und OpenFileDialog.
    Wie schreibe ich aber aus einem textfeld etwas in die datei ?

    Mein COdE:
    Code:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    SaveFileDialog1.Filter = "XML Dateien (*.xml)|*.xml"

    If (SaveFileDialog1.ShowDialog = DialogResult.OK) Then


    ????????????????????????????????????


    ds.WriteXml(SaveFileDialog1.FileName)
    End If

    Ds vom Typ Data.set

    Dann gibt es noch ein problem: Ich habe ein altes VB 6 Buch und auch einige Tutorials hervorgekramt und mir angeschaut wie es mit dem Normalen VB funktioniert ohne den save/open Filedialog. Problem hier. er kennt keine der klassen, die ich benötige um diese Aktion durchzuführen, wie z. B. Stream, TextStream etc ....

    Falls mir jemand auch noch sagen könnte wie es zusätzlich ohne den dialog zu benutzuen funktiontiert wäre ich echt dankbar ....

    LG Patrick

  • #2
    Hi,

    ich glaube das XML im Compact Framework bisher NICHT unterstützt wird. Du musst wohl oder übel mit Textdateien vorlieb nehmen .

    In .NET 2.0 soll sich dies glaube ich ändern!

    c

    Comment


    • #3
      Lesen über Streamreader

      Public Function Get_Daten() As Boolean
      Try
      Dim sr As StreamReader
      Dim Zeile As String
      Dim TZeile() As String
      Dim Datei As String

      Datei = Pfad + Dateiname Einzulesende Textdatei
      sr = New StreamReader(Datei)

      ds.Tables("myTable").BeginLoadData() Table in Dataset zum Einlesen öffnen
      Do
      Zeile = sr.ReadLine Eine Zeile lesen
      If Zeile Is Nothing Then
      Exit Do Abbruch-Bed.
      End If
      TZeile = Zeile.Split("$") Die Datenfelder sind durch $ getrennt
      ds.Tables("myTable").LoadDataRow(TZeile, False) eine Datarow schreiben
      Loop
      sr.Close()

      ds.Tables("myTable").EndLoadData() Table schliessen


      Catch e As Exception
      MsgBox(e.Message)

      End Try
      End Function


      Erläuterung:

      Der Streamreader ist deutlich schneller als ein XML-Reader; das haben meine Tests ergeben.
      Weiterhin ist die Version mit "BeginLoad" und "Endload" schneller als "NewRow".
      Die Datenzeile ist durch das Trennzeichen $ in die Einzelfelder unterteilt.
      Möglicherweise könnte man noch eine Performance-Verbesserung erreichen durch Längengleichheit der einzelnen Spalten,
      da dann der Datensatz nicht gescannt werden muss.

      Käme auf einen Versuch an, was ich nicht mehr gemacht habe (der Nachteil wäre natürlich erhöhter Speicherplatzbedarf)

      Gruss
      J.W.

      Comment

      Working...
      X