| Autor |
Beitrag |
masterZed
      
Beiträge: 39
|
Verfasst: Mi 18.02.09 15:42
hallo Gemeinde,
ich möchte gerne ganz simple, das meine Textbox die "Autovervollständigung" aus meiner *.txt Datei übernimmt.
zum Testen nahm ich dies hier:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
textBox1.TextChanged += new EventHandler(texBox1_TextChanged);
col1.AddRange(new string[] { "testa boria", "hello boris" });
textBox1.AutoCompleteCustomSource = col1; textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; } AutoCompleteStringCollection col1 = new AutoCompleteStringCollection(); AutoCompleteStringCollection col2 = new AutoCompleteStringCollection(); |
Nun, jetzt möchte ich gerne das er das ganze einfach aus der Datei liest!!
Jemand einen kleine Tipp wie ich vorgehen kann ?
vielen Dank
Moderiert von Christian S.: Quote- durch C#-Tags ersetzt
Zuletzt bearbeitet von masterZed am Mi 18.02.09 15:54, insgesamt 1-mal bearbeitet
|
|
Console.Beep()
      
Beiträge: 43
Win XP, Ubuntu 8.10
C# (VS 2008 Exp) C++ (VS 2008 Exp)
|
Verfasst: Mi 18.02.09 15:51
Du wärst schneller zu deiner Antwort gekommen wenn du die Google suche benutzt oder die hilfe von msdn genutzt hättest
Zum Lesen von Dateien gebe ich dir nur ein Tipp: der Schlüssel liegt bei System.IO
Schau dir die dort befindlichen Klassen an
_________________ Ihr zweifelt an der Existenz der If-Schleife??? Ihr müsst nur fest daran glauben!!!
|
|
bakachan
      
Beiträge: 503
Erhaltene Danke: 34
W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
|
Verfasst: Mi 18.02.09 15:54
Dein Prinzip sollte doch klar sein:
1. Strings aus der Datei auslesen
2. Strings in die AutoCompleteCustomSource stecken
Zum Auslesen wurde ja schon der Tip System.IO Namespace gegeben (besonders die File Klasse darin ist für dich interessant) und das hinzufügen zu CustomSource sollte ja kein Problem sein.
|
|
masterZed 
      
Beiträge: 39
|
Verfasst: Mi 18.02.09 16:04
bakachan hat folgendes geschrieben : | Dein Prinzip sollte doch klar sein:
1. Strings aus der Datei auslesen
2. Strings in die AutoCompleteCustomSource stecken
Zum Auslesen wurde ja schon der Tip System.IO Namespace gegeben (besonders die File Klasse darin ist für dich interessant) und das hinzufügen zu CustomSource sollte ja kein Problem sein. |
Erstmal besten Dank für die schnelle Antwort. Da ich noch etwas frisch in der Sachen bin würde es mich denoch freuen wenn Du mir ein kleines Bsp. für die übergabe von Stream in die CustomSource geben könntest.
ich bedanke mich...
|
|
Console.Beep()
      
Beiträge: 43
Win XP, Ubuntu 8.10
C# (VS 2008 Exp) C++ (VS 2008 Exp)
|
Verfasst: Mi 18.02.09 16:12
Natürlich
Hier ein Beispiel:
msdn.microsoft.com/d...ibrary/ms228592.aspx
etwas weiter unten kommt dann ein Bsp für c# in sachen I/O
eigendlich musst du nur File.ReadAllText() verwenden der gibt dir einen string aus
desweiteren solltest du dir Galileo openbook anschaun da werden alle grundlagen erklärt
_________________ Ihr zweifelt an der Existenz der If-Schleife??? Ihr müsst nur fest daran glauben!!!
|
|
bakachan
      
Beiträge: 503
Erhaltene Danke: 34
W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
|
Verfasst: Mi 18.02.09 16:42
Console.Beep() hat folgendes geschrieben : | | eigendlich musst du nur File.ReadAllText() verwenden der gibt dir einen string aus |
File.ReadAllLines wäre wohl sinnvoller das gibt dir gleich ein stringarray(ein string pro zeile in der datei) wieder hat also schon das passende format ums gleich reinzugeben
Edit: obwohl es kommt drauf an wie die vorgaben in der datei vorliegen falls pro vorgabe eine zeile ist dann File.ReadAllLines und falls es anders ist einfach mit File.ReadAllText und dann nachbearbeiten.
Falls du den umständlicheren weg über Streams gehen willst gibts die Klassen StreamReader und TextReader
|
|
masterZed 
      
Beiträge: 39
|
Verfasst: Mi 18.02.09 16:47
|
|
bakachan
      
Beiträge: 503
Erhaltene Danke: 34
W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
|
Verfasst: Mi 18.02.09 17:03
Der meiner meinung nach schönste weg wäre wenn es in der Textdatei zeilenweise vorliegt:
C#-Quelltext 1: 2:
| textBox.AutoCompleteCustomSource.Clear(); textBox.AutoCompleteCustomSource.AddRange(System.IO.File.ReadAllLines(path)); |
|
|
masterZed 
      
Beiträge: 39
|
Verfasst: Mi 18.02.09 17:29
bakachan hat folgendes geschrieben : | Der meiner meinung nach schönste weg wäre wenn es in der Textdatei zeilenweise vorliegt:
C#-Quelltext 1: 2:
| textBox.AutoCompleteCustomSource.Clear(); textBox.AutoCompleteCustomSource.AddRange(System.IO.File.ReadAllLines(path)); | |
Du hast es auf den Punkt gebracht, das hatte mir gefällt
Euch beiden, ein großen Dank für die schnelle Hilfe.
Kleinen frage noch weil es gerade so schön ist.
Nun er leist mir jetzt die ganze Zeile ein (besteht aus 5 Wörtern, getrennt durch komma) und gibt mir dies zur Auswahl an. Es würde mir ausreihen wenn er mir nur das Erste Wort jeder Zeile anbieten würde.
Kleiner Hinweis?
nochmals großen Dank
|
|
bakachan
      
Beiträge: 503
Erhaltene Danke: 34
W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
|
Verfasst: Mi 18.02.09 17:39
Dann geht es leider nicht ganz so schön.
eigenes string[] anlegen und den inhalt der datei entsprechend aufsplitten wie du es haben willst
wenn du jedes wort einzeln haben willst les dir die datei mit File.ReadAllText ein und zerleg es entsprechend(hinweis: string.Split())
|
|
masterZed 
      
Beiträge: 39
|
Verfasst: Do 19.02.09 17:19
bakachan hat folgendes geschrieben : | Dann geht es leider nicht ganz so schön.
eigenes string[] anlegen und den inhalt der datei entsprechend aufsplitten wie du es haben willst
wenn du jedes wort einzeln haben willst les dir die datei mit File.ReadAllText ein und zerleg es entsprechend(hinweis: string.Split()) |
Hi,
das spliten sollte so gehen sein oder? | Zitat: |
FileStream oFile = new FileStream(DatenPfad, FileMode.Open, FileAccess.ReadWrite);
StreamReader oStream = new StreamReader(oFile);
String tmp = oStream.ReadLine();
String[] line = tmp.Split(Convert.ToChar(",")); |
um meine Sachen zu vervollständigen, was fehlt mir noch?
|
|
danielf
      
Beiträge: 1012
Erhaltene Danke: 24
Windows XP
C#, Visual Studio
|
Verfasst: Do 19.02.09 17:32
C# 1: 2:
| AutoCompleteStringCollection acsc = new AutoCompleteStringCollection(); acsc.AddRange(File.ReadAllText(Form1.sAutoCompleteDBName).Split(';')); |
|
|
masterZed 
      
Beiträge: 39
|
Verfasst: Do 19.02.09 17:38
danielf hat folgendes geschrieben : | C# 1: 2:
| AutoCompleteStringCollection acsc = new AutoCompleteStringCollection(); acsc.AddRange(File.ReadAllText(Form1.sAutoCompleteDBName).Split(';')); | |
oh man... jetzte gehts.
vielen Dank für die mega schnelle Antwort.
ps. Er liest mir mit nur den Ersten String der Zeile eine. Wie sieht das aus wenn er mir den Ersten der gesamten Spalten anzeigen soll?
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Do 19.02.09 20:25
Dazu benutzt du ReadAllLines, rufst für jede Zeile Split auf und fügst das erste Element des Split-Arrays deiner acsc hinzu.
_________________ >λ=
|
|
masterZed 
      
Beiträge: 39
|
Verfasst: Fr 20.02.09 11:52
Kha hat folgendes geschrieben : | | Dazu benutzt du ReadAllLines, rufst für jede Zeile Split auf und fügst das erste Element des Split-Arrays deiner acsc hinzu. |
Ein Beispiel sagt mir mehr als 1000 Worte
bitte um ein kleine example.
|
|
danielf
      
Beiträge: 1012
Erhaltene Danke: 24
Windows XP
C#, Visual Studio
|
Verfasst: Fr 20.02.09 12:10
|
|
masterZed 
      
Beiträge: 39
|
Verfasst: Fr 20.02.09 13:43
|
|
masterZed 
      
Beiträge: 39
|
Verfasst: Mo 23.02.09 16:59
Etwas habe ich vergesen und zwar was fehlt, damit der Text nach dem Speichern aktualiesiert wird?
Sprich, die Autovervollständigung erkennt den neuen Eintrag erst nach einem restart.
danke
|
|
Kha
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Mo 23.02.09 19:13
Nach dem Speichern der txt-Quelle? Dann brauchst du einen FileSystemWatcher: msdn.microsoft.com/e...ibrary/ch2s8yd7.aspx
_________________ >λ=
|
|
masterZed 
      
Beiträge: 39
|
Verfasst: Mi 25.02.09 09:20
Genau, das könnnte es sein...
|
|