mehrere TXT auslesen und in datagridview einfügen
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 52 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.
-
-
-
ich frag ja immer nach dem Datenmodell .
Offenbar soll aus jeder Datei ein Datensatz gemacht werden, und die Zeilen der Datei stellen die Spaltenwerte dar.
Dann erste Frage: Haben auch alle diese Dateien dieselbe Zeilen-Zahl?
Weil sonst bräuchtest du ja ein DGV mit "Flatter-Rand". -
-
Flatterrand ist ein Begriff aussm Buchdruck. Man kann Blocksatz machen, dann werden die wortzwischenräume so gedehnt, dass alle Zeilen gleich breit sind.
Bei Flatterrand sind die Zeilen unterschiedlich breit, weil der Wort-Umbruch halt nicht immer mit derselben Zeichenzahl aufgeht.
Beim DGV wäre Flatterrand, wenn die Zeilen verschieden viele Zellen enthielten - was aber praktisch kaum möglich ist.
Aber deine text-Dateien haben immer zB 3 Zeilen, und daraus ergäbe sich dann ein 2-spaltiges DGV?
Aber man sollte noch genauer hingucken, evtl. bedeuten in deine txt-Dinger ja die Zeilen auch was spezifisches, etwa zeile1 ist ein Name, zeile 2 ein Datum, zeile 3 eine Telefonnummer?
Sowas wäre nützlich, beim Aufbau eines typisierten Datasets mit zu berücksichtigen, da ist möglich und vorgesehen, dass du am Ende Datensätze erhälst mit so sinnfälligen Properties wie
Name As String
BirthDay As DateTime
Phone As String
und sowas.
Halt ein vernünftiges Datenmodell.
Hach jeh! ich hab doch konkret danach gefragt, ob die Dateien alle dieselbe Zeilenzahl haben - ist das eiglich schwer zu beantworten? -
-
-
-
schon.
Ich empfehleja ein typisiertes Dataset anzulegen, und das Zeug da einzuspielen. Kannstedann sogar abspeichern als eine Datei.
Dazu bräuchteste nur eine DataTable darin anzulegen, mit so sinnigen Spalten wie
Grundform
Genitiv-Form
Geschlecht
Dekliniationsart
... usw.
ZB Dekliniationsart ist doch nicht uninteressant - prinzipiell kann man aus sonem Ding auch alle unregelmäßigen Verben abfragen und so Zeugs - aber das käme erst im nächsten Schritt.
Zunächstmal würden die SpaltenNamen, die du im Dataset definierst, automatisch im daran angebundenen DGV wieder auftauchen, nämlich als Spaltenüberschriften, und allein dafür tate sichs schon lohnen.
guggemol Daten laden, speichern, verarbeiten
Das ist natürlich weit mehr als deine Anforderung, aber nurmal, dassde son typ Dataset mal gesehen hast.
Und wie man ein daran gebundenes DGV erstellt, steht da glaub auch, nämlich einfach aus dem Datenfenster die Tabelle aufs Form ziehen.
Datenfenster kennste?
Ansonsten gugge Tut
Das einlesen von deine DateiOrdner wäre dann eine kleine Sub, aber die kann man erst schreiben, wenn das typDataset da ist. -
-
Kulki-See schrieb:
ich bräuchte dafür glatt drei Jahre!
also das Dataset ist in 10 min zusammengeklickst, und auch der Roh-Entwurf des Guis.
Tückisch sind DataGridViewComboboxColumns, denn die verlangen die Existenz gültiger übergeordneter Datensätze.
tückisch, weil- Dataset.ReadXml kümmert sich nicht um die Reihenfolge, in der die Tabellen geladen werden. Dadurch sind im DGV schon Daten drin - die Combos sind aber noch garnet bereit.
Deshalb die Methode Phonebook.SetDataLoading()
Das ist aber außerdem eine effektive Beschleunigung bei LadeVorgängen. - WinForms hat den Bug, dass beim Schließen erst die Components disposed werden (also auch die BindingSources), danach erst die Controls. Da meckern die ComboColumns auch rum, wenn man ihnen ihre DataSource unterm Hintern disposed.
Deshalb die Methode Overrides Phonebook.Dispose()
Dassis richtig tricky, denn diese Methode muß man aussm DesignerCode in den UserCode verschieben, und modifizieren.
- Dataset.ReadXml kümmert sich nicht um die Reihenfolge, in der die Tabellen geladen werden. Dadurch sind im DGV schon Daten drin - die Combos sind aber noch garnet bereit.
-
ist wahrscheinlich die blödeste aller fragen, aber ähm
wie erstellt man eine XML-Datei in VB
file.create(Beispiel.xml)
oder wie???
PS: du sprachst von typisierten DataSets, wie füge ich die denn im vorraus in mein Programm ein??? ich hab mir zwar mal ein Programmierbuch gekauft, aber das ist meistens sehr oberflächlich
PPS: Wie kommst du den jetzt auf Comboboxen? Und wie kann man die nun verwenden? ich binnicht der typ programmierer, der dir in 10 minuten blind einen virus schreibt um Bill Gates' Privat PC zu hacken.Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Kulki-See“ ()
-
- Ich find die Frage nicht blöd. Hätteste glatt zum tut direkt stellen können.
Antwort: Erstmal garnet.
Du mußt nur einen Speicherpfad bestimmen, deine Anwendung laufen lassen, und dann auf Save klicksen.
Vmtl. willst du schon im Form_Load Daten laden, das müssteste entweder zunächstmal auskommentieren, oder dort abfangen, wenn die Datei nicht existiert (fileInfo.Exists).
- Die Frage ist schon blöder, weil das steht im Tut direkt unter dem ersten Dataset-Bildchen, welches Menü da zu klicksen ist.
- Gugge Post#2 des Tuts, da werdense doch verwendet
Ich hab das mit den ComboColumns übrigens noch nachgebessert im Post#2 des Tuts, und auch eine einfachere Lösung für den WinForm-Bug drangemacht (sowohl im Text als auch im Download) - Ich find die Frage nicht blöd. Hätteste glatt zum tut direkt stellen können.
-
1: hätte ich machen können, stimmt
2: achso, ich dachte Programmieren ist schwer, aber wenns so einfach is ... ich dachte nicht dass das schon alles ist. sorry
3: ich war noch mit TUT #1 beschäftigt
OK, vielen Dank
ich poste dann meine ergebnisse
eine Frage noch zum Code:
soll da dann stehen:
oder wieso nimmt er das nicht an?
STATUS-REPORT (20:25):
... XML-Datei steht --- (abgeschlossen)
... DGV verknüpft --- (abgeschlossen)
... versuche nun mit Daten zu füllen --- (nicht abgeschlossen)
....... Fehler: Daten werden nicht geschrieben!
....... entsprechender Code:
.......
wo ist der Fehler???
PS: Um zum eigentlichen Thema zurückzukehren:
ich habe LektionsTXTs (001.txt, ....)
deren Erste Zeile ihren Namen beinhaltet bspw. "Latein A-H", damit mehrere gleichnamige Datein erlaubt sind und besondere Zeichen wie "\".
Die ersten zeilen sollen in die listbox...
wenn ich nun einen Eintrag markieren und nen button klicke soll die entsprechende xml aufgehen.
Meine übliche Frage: "Wie bewerkstellige ich das?"
ich will nicht unbedingt code schnorren...
um es in VB zu sagen:
VB.NET-Quellcode
- Private Sub mein_Erfolg() Handles ich_glücklich_button.click
- Dim ich as String
- ich = "Ich nix glücklich"
- Dim Erfahrung as Integer
- Erfahrung = 0
- Dim Motivation as Integer
- Motivation = 100
- Dim Ergebnis as String
- Dim Ergebnis2 as Integer
- Dim Hilfeleistung as String
- Dim Hilfeleistung2 as Boolean
- Hilfeleistung = "Befehl mit Syntax und Beispiel" & vbcrlf& "Netter Antworter namens ErfinderDes Rades"
- if Hilfeleistung = "Befehl mit Syntax und Beispiel" & vbcrlf& "Netter Antworter namens ErfinderDes Rades" Then
- Hilfeleistung2 = True
- end if
- For each Versuch in this_programm
- Erfahrung = Erfahrung + 1
- Next
- Ergebnis2 = Erfahrung * Motivation
- If Ergebnis2 = 10000 and Hilfeleistung2 = True Then
- ich = "Ich sehr glücklich"
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Kulki-See“ ()
-
STATUS-REPORT (20:25):
... XML-Datei steht --- (abgeschlossen)
... DGV verknüpft --- (abgeschlossen)
... versuche nun mit Daten zu füllen --- (nicht abgeschlossen)
....... Fehler: Daten werden nicht geschrieben!
....... entsprechender Code:
.......
wo ist der Fehler???
<histeric> wo? wo!? </histeric>Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Kulki-See“ ()
-
setz dochma'n Haltepunkt drauf, und guck, ob der Code ausgeführt wird.
und dann lösch die Datei, schreib sie neu, und guck im explorer, wie die Datei entsteht, die vorher nicht da war.
man vertut sich leicht mit dateinamen.
also genannte dann mal reingugge, und genannte datei bequemerweise auch in projekt einbinden (gugge tut) -
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Kulki-See“ ()
-
ja, dann ist das Dataset, was du abspeicherst, wohl leer.
vlt. speicherst du ein anderes Dataset ab, als das wo die Daten drin sind.
das mittm Einbinden dient nur der Bequemlichkeit. Inne Sample-Solution des Tuts findest du eine eingebunden .xml-Datei wo die Daten meines Datasets drinne sind. Einbinden kann man über den Projekt-Explorer - hat aber wie gesagt, mitte Funktionalität nix zu tun. -
-
naja, du könntest eine Sample-Solution machen, die den Fehler reproduziert. Die könnte ich dann umbauen.
-
Benutzer online 1
1 Besucher
-
Ähnliche Themen
-
Wie kann ich eine ganze Spalte von einer DataGridView auslesen
LizardProgrammer - - Daten(bank)programmierung -
RazerElite - - Sonstige Problemstellungen
-
-
2 Benutzer haben hier geschrieben
- Gast (31)
- ErfinderDesRades (22)