Autor Beitrag
masterZed
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: 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:


ausblenden 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);


            // string filenew = @"c:\test.txt";
            // Stringreader sr = new Strinreader(filenew);

            
            
                
            
            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 user profile iconChristian S.: Quote- durch C#-Tags ersetzt


Zuletzt bearbeitet von masterZed am Mi 18.02.09 15:54, insgesamt 1-mal bearbeitet
Console.Beep()
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 43

Win XP, Ubuntu 8.10
C# (VS 2008 Exp) C++ (VS 2008 Exp)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Mi 18.02.09 16:04 
user profile iconbakachan hat folgendes geschrieben Zum zitierten Posting springen:
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()
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 43

Win XP, Ubuntu 8.10
C# (VS 2008 Exp) C++ (VS 2008 Exp)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Mi 18.02.09 16:42 
user profile iconConsole.Beep() hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Mi 18.02.09 16:47 
user profile iconbakachan hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconConsole.Beep() hat folgendes geschrieben Zum zitierten Posting springen:
eigendlich musst du nur File.ReadAllText() verwenden der gibt dir einen string aus



Falls du den umständlicheren weg über Streams gehen willst gibts die Klassen StreamReader und TextReader


Umständlich? was wäre den der schönste Weg?
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Mi 18.02.09 17:03 
Der meiner meinung nach schönste weg wäre wenn es in der Textdatei zeilenweise vorliegt:
ausblenden C#-Quelltext
1:
2:
textBox.AutoCompleteCustomSource.Clear();
textBox.AutoCompleteCustomSource.AddRange(System.IO.File.ReadAllLines(path));
masterZed Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Mi 18.02.09 17:29 
user profile iconbakachan hat folgendes geschrieben Zum zitierten Posting springen:
Der meiner meinung nach schönste weg wäre wenn es in der Textdatei zeilenweise vorliegt:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Do 19.02.09 17:19 
user profile iconbakachan hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Do 19.02.09 17:32 
ausblenden C#
1:
2:
AutoCompleteStringCollection acsc = new AutoCompleteStringCollection();
acsc.AddRange(File.ReadAllText(Form1.sAutoCompleteDBName).Split(';'));
masterZed Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Do 19.02.09 17:38 
user profile icondanielf hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Fr 20.02.09 11:52 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Fr 20.02.09 12:10 
Aus dem Kopf raus ...

ausblenden C#
1:
2:
3:
4:
5:
6:
7:
8:
AutoCompleteStringCollection acsc = new AutoCompleteStringCollection();

string[] fileContent = File.ReadAllLines();

foreach (string fileLine in fileContent)
{
   acsc.Add(fileLine.Split(';')[0]);
}


Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
masterZed Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Fr 20.02.09 13:43 
user profile icondanielf hat folgendes geschrieben Zum zitierten Posting springen:
Aus dem Kopf raus ...

ausblenden C#
1:
2:
3:
4:
5:
6:
7:
8:
AutoCompleteStringCollection acsc = new AutoCompleteStringCollection();

string[] fileContent = File.ReadAllLines();

foreach (string fileLine in fileContent)
{
   acsc.Add(fileLine.Split(';')[0]);
}


vielen Dank, jetzt bin ich "ERSTMAL" am Ziel.

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
masterZed Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 39



BeitragVerfasst: Mi 25.02.09 09:20 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Nach dem Speichern der txt-Quelle? Dann brauchst du einen FileSystemWatcher: msdn.microsoft.com/e...ibrary/ch2s8yd7.aspx


Genau, das könnnte es sein...