Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 23:31

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C#]Datei auslesen Fortschirtt

Discussion on [C#]Datei auslesen Fortschirtt within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 10
Join Date: Aug 2012
Posts: 813
Received Thanks: 106
[C#]Datei auslesen Fortschirtt

Hallo,
ich brauche eure Hilfe, da ich nicht weiß, wie ich z.B. eine *.txt-Datei auslesen kann und dabei eine Progressbar dazu laufen lassen kann.
Ich würde es gerne so machen, dass die Progressbar anzeigt, wie viel von der ganzen Datei bereits gelesen wurde.

Ich hoffe, dass mir jemand dabei helfen kann.
GodHacker is offline  
Old 06/25/2013, 23:26   #2


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Was genau ist das Problem?
Requi is offline  
Old 06/26/2013, 00:12   #3
 
elite*gold: 10
Join Date: Aug 2012
Posts: 813
Received Thanks: 106
Ich habe ersteinmal versucht zeichenweise eine txt-Datei zu lesen (nicht die zeichen zu speichern) und dabei das ganze mit einer Progressbar sichtbar zu machen. Hier kommt aber schon das erste problem, dass es zwar die Datei durch geht, aber die Form hängt (also weder eine Textbox, noch die Progressbar "Aktuallisiert" (bzw. ändert).
Ich weiß außerdem nicht, wie ich dies dann mit Zeilen mache. Es soll also die Anzahl der Zeilen bestimmt werden und anschließend Zeile für Zeile eingelesen werden und der Fortschritt dabei mit der Progressbar angezeigt werden. (sollte es nicht Zeile für Zeile gehen, bin ich auch offen für alternativen).
Im ganzen geht es mir nur darum, dass ich eine Datei lesen will, und den Fortschritt an einer Progressbar sichtbar machen kann (es müssen also genaue x von max. angaben sein).
GodHacker is offline  
Old 06/26/2013, 00:20   #4


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Wenn das auslesen klappt, würde ich einfach, mit einem neuen Thread die Aufgabe ausführen lassen. Denn dann hängt die Form nicht und sieht auch "schöner" aus.

Gibt auch die unsaubere Möglichkeit eines Backgroundworkers. Macht genau das selbe.
Requi is offline  
Thanks
1 User
Old 06/26/2013, 08:41   #5
 
elite*gold: 5
Join Date: Mar 2008
Posts: 460
Received Thanks: 436
1. Zaehlervariable deklarieren
2. Datei einlesen (Streamreader)
3. Zahlervariable hochzählen lassen (Readline)
4. Progressbar den Zähler mitteilen
5. Datei erneut lesen (Readline von vorne)

Das ganze kannst du jetzt natürlich in einem extra Thread (wie Requi schon gesagt hat) machen oder wenn es wirklich nur simpl gemacht werden soll machst du nachdem du der ProgressBar ein neues Value zugewiesen hast ein "Application.DoEvents()" damit aktualisiert sich deine Form, bzw es werden alle Event's was anfallen erledigt und dann geht es nach dem DoEvents wieder weiter. Das ist natürlich unter umständen nicht zu empfehlen, jedoch meist ausreichend.
SwarN is offline  
Thanks
1 User
Old 06/26/2013, 09:53   #6


 
Cholik's Avatar
 
elite*gold: 4
Join Date: Aug 2008
Posts: 6,783
Received Thanks: 4,992
Sauber wäre es aber definitiv in einem eigenen Thread aufgehoben. Via FileInfo kann man sich dann bequem die Länge holen und anhand von CurrentPosition die ProgressBar updaten lassen.

Oder man setzt da einfach auf den Buffer, setzt dem ein Limit wie man lustig ist und updated bei dessen Refresh einfach immer die ProgressBar.
Cholik is offline  
Thanks
5 Users
Old 06/26/2013, 13:07   #7
 
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
Application.DoEvents() ist ein relativ zielstrebiger Weg zu ner Menge Kopfweh :P
Wollt ich nur mal kurz anmerken, ansonsten hat Walter es ja schon praktisch perfekt zusammengefasst.

@Requi was genau findest an nem Backroundworker unsauber ? Wenn ich es nicht falsch im Kopf hab ist es doch einfach nur ein Wrapper um die Threadingklasse ?
dready is offline  
Old 06/26/2013, 13:46   #8
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
Mal so ganz nebenbei, wie groß ist bitte diese Textdatei das du eine Progressbar anzeigen willst?
Ich hab letztens einen Parser für ca 5GB an Textdateien geschrieben, lief keine 5 Minuten und war nicht auf Geschwindigkeit optimiert, eher im gegenteil.
MoepMeep is offline  
Old 06/26/2013, 13:57   #9
 
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
Bei 5 Minuten ist doch eine Progressbar gar nicht so schlecht.
qkuh is offline  
Old 06/26/2013, 14:16   #10
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
Quote:
Originally Posted by qkuh View Post
Bei 5 Minuten ist doch eine Progressbar gar nicht so schlecht.
Bei 5 Minuten wäre es eine Option, ich glaube aber kaum das es bei ihm 5GB sein werden. Ein paar MB große Dateien sind fertig bevor der Nutzer die Progressbar überhaupt sieht.
MoepMeep is offline  
Thanks
3 Users
Old 06/26/2013, 17:11   #11


 
Else's Avatar
 
elite*gold: 4
The Black Market: 166/0/0
Join Date: Feb 2008
Posts: 3,854
Received Thanks: 1,268
Wie wäre es damit die Datei in Bytes zu lesen und den Progressbar dem entsprechend zu aktualisieren?! Das ist wesentlich einfacher, als das Auslesen der Zeilen, usw. usw.
Else is offline  
Thanks
1 User
Old 06/26/2013, 17:36   #12
 
elite*gold: 10
Join Date: Aug 2012
Posts: 813
Received Thanks: 106
Hm...
Sind ja schon einige Ideen, die gut klingen. Ich werde es mir mal alles ansehen und testen.

PS: Die Dateien sind unterschiedlich groß. Ob ich irgendwann mal eine Datei mit 1-2GB (höher bestimmt nicht) habe, kann ich noch nicht sagen.

Ich bedanke mich für eure bisherige Hilfe.
Sollte ich noch Probleme haben, dann frage ich einfach nach.
GodHacker is offline  
Old 06/26/2013, 18:54   #13
 
elite*gold: 71
Join Date: May 2013
Posts: 449
Received Thanks: 64
Quote:
Originally Posted by Else View Post
Wie wäre es damit die Datei in Bytes zu lesen und den Progressbar dem entsprechend zu aktualisieren?! Das ist wesentlich einfacher, als das Auslesen der Zeilen, usw. usw.
eigentlich nicht.

Was spricht gegen Zeilen!?
Und wie auch schon an den oberen Posts entnommen werden kann, ist eine ProgressBar bei einer Datei die kleiner als 100 MB (und ich glaube kaum, dass du eine 100 MB Datei auslesen willst) unnötig.
AT0MiX is offline  
Old 06/26/2013, 18:54   #14


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Quote:
Originally Posted by dready View Post
@Requi was genau findest an nem Backroundworker unsauber ? Wenn ich es nicht falsch im Kopf hab ist es doch einfach nur ein Wrapper um die Threadingklasse ?
Ich bevorzuge lieber "With New Thread", da ein Backgroundworker immer so hingeklatscht aussieht.
Requi is offline  
Old 06/26/2013, 19:31   #15


 
Cholik's Avatar
 
elite*gold: 4
Join Date: Aug 2008
Posts: 6,783
Received Thanks: 4,992
Quote:
Originally Posted by Requι View Post
Ich bevorzuge lieber "With New Thread", da ein Backgroundworker immer so hingeklatscht aussieht.
Hingeklatscht wäre aber eher die Variante über System.Threading.Thread zu gehen. Ein Backgroundworker hat idR den Scope bzw Kontext zur UI somit spart man sich die lästigen Invokes. Die direkte Thread-Klasse sollte man dann eher in Konsolenapplikationen nutzen oder alternativ, wenn man einfach nur Berechnungen durchführt, die mit der UI des Programms nichts zu tun haben.

Ggf auch hier mal schauen
Cholik is offline  
Thanks
2 Users
Reply


Similar Threads Similar Threads
[S] Bot Coder [txt.Datei auslesen]
01/12/2013 - elite*gold Trading - 5 Replies
Moin suche jemand der mir einen Bot codet der aus einer txt Datei Email Addressen in einen Newsletter einträgt (keine Email bestätigung nötig) Würde in Elitegold bezahlen - Einfach mal melden.
Sql Datei auslesen
01/11/2013 - Technical Support - 1 Replies
erledigt
Sql Datei auslesen
01/11/2013 - elite*gold Trading - 1 Replies
Hey, ich möchte eine account tabelle auslesen (in .sql) aber wie mache ich das am besten ? Muss account name & passwort von 1000 Accounts kopieren. Gebe dem, der mir die beste antwort giebt 4 €*Gold Also ich muss ganze Spalten kopieren MLG Marlo
1. | 3. | 5. | Linie usw.. in Datei auslesen
07/15/2011 - AutoIt - 3 Replies
Hey... Ich wollte von einer Datei die 1. 3. 5. linie usw.. bis 60 Linien auslesen und wiedergeben.. Nur klappt das i-wie nicht.. Ich dachte mir vielleicht kann mir jemand helfen.. $open = FileOpen(@ScriptDir&"\datei.txt") For $i = 1 To 60 $msg = FileReadLine ($open,$i+1) MsgBox (0,"",$msg) Next Sleep(10)
DAtei-Speicherort auslesen
06/15/2010 - AutoIt - 4 Replies
Hallo! Gibt es in AutoIt einen Befehl oder eine Function um den Dateispeicherort einer Datei rauszufinden? ich brauche den damit ich den BEfehl FileMove() verwenden kann. mfg



All times are GMT +1. The time now is 23:32.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.