Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

C eine TXT auslesen und in arrays speichern

Frage Entwicklung C und C++

Mitglied: Dipps

Dipps (Level 2) - Jetzt verbinden

09.06.2008, aktualisiert 18.08.2008, 9170 Aufrufe, 12 Kommentare

C# eine TXT auslesen und in arrays speichern

Hallo ich möchte eine Textdatei auslesen.
als erstes bruche ich ein befehl der mir ausgibt wie viele zeilen ich habe damit ich weiss wie groß die schleife dann wird. dann habe ich es schon so weit das ich jede zeile in ein array speicher. nun will ich die zeile aufteilen in mehrere arrays und zwar bis zum ";" bzw "," was gibt es dafür für befehle?

Danke schon mal
Mitglied: tacker
09.06.2008 um 14:28 Uhr
salü Dipps!

ich würde folgende schleife verwenden um die textdatei bis zum ende zu bearbeiten!

01.
FileStream fs = new FileStream(@"test.txt", FileMode.Open); 
02.
StreamReader sr = new StreamReader(fs); 
03.
while (sr.EndOfStream) 
04.
05.
... 
06.
}
dein zweites "problem" behebst du mit der splitfunktion des strings. dafür nehme ich an, dass du jetzt jede eingelesene zeile in einem string speicherst! dort kannst du ihm dann ein einem seperaten trennzeichen-array angeben nach welchen zeichen er splitten soll!

gruss tacker
Bitte warten ..
Mitglied: Dipps
09.06.2008 um 14:51 Uhr
geht nicht da kommen 3 fehler

Fehler 1 Syntaxfehler. "while" erwartet.
Fehler 2 Syntaxfehler. "(" erwartet.
Fehler 3 ) erwartet.

anscheint kommt er mit dem "do" nicht hin
Bitte warten ..
Mitglied: tacker
09.06.2008 um 15:16 Uhr
guck ma meinen code an, habs kurz darauf noch geändert. wie du gemerkt hast das "do" weglassen. ansonsten kannste ja ma kurz deinen ganzen code posten!

gruss tacker
Bitte warten ..
Mitglied: Dipps
09.06.2008 um 15:29 Uhr
Also ich habe mal den Codde er geht jetzt aber nicht wirklich in die Schleife den er gibt mir keinen Text aus. useranzahl ist ein input feld aber er sollte doch trozdem da was ausgeben oder?

01.
private void button3_Click(object sender, EventArgs e) 
02.
03.
             
04.
 
05.
            FileStream fs = new FileStream(@startusertxt.Text, FileMode.Open); 
06.
StreamReader sr = new StreamReader(fs); 
07.
while (sr.EndOfStream) 
08.
09.
    useranzahl.Text = "geht in schleife"; // Zur Probe sollte ja anzeigen das er in der schleife ist 
10.
}
Bitte warten ..
Mitglied: tacker
09.06.2008 um 15:45 Uhr
aiaiai was alles untergeht wenn man nicht direkt testen kann...

01.
while (!sr.EndOfStream)
er soll ja schliesslich solange die schleife durchmachen bis er am ende ist...

jetzt sollte er die jeweilige zeile in deinem textfeld "useranzahl" ausgeben, ansonsten evtl mit ner messagebox testen...

gruss
Bitte warten ..
Mitglied: Dipps
09.06.2008 um 15:57 Uhr
gut danke schön und das mit dem split habe ich auch noch nicht ganz hin bekommen ich speicher die zeile erstmal in der var

01.
string nutzer; 
02.
 
03.
while(!EndOfStream) 
04.
05.
nutzer=sr.ReadLine(); 
06.
 
07.
// jetzt wäre nutzer="Max , Mustermann" 
08.
 
09.
}
ich möchte aber das er mir am ende Max, Mustermann, MaxMu, Pass
ausgibt das heisst in der TXT steht nur Name vorname in der Schleife soll er ein Namens kürzel bauen MaxMu und ein Passwort generieren
Bitte warten ..
Mitglied: tacker
09.06.2008 um 16:13 Uhr
schön ausformuliert würde dies dann etwa so aussehen:

01.
nutzer = sr.readline(); 
02.
 
03.
string[] delims = new string[2]; 
04.
delims[0] = ","; 
05.
delims[1] = " "; 
06.
 
07.
string vorname = nutzer.Split(delims, StringSplitOptions.RemoveEmptyEntries)[0]; 
08.
string nachname = nutzer.Split(delims, StringSplitOptions.RemoveEmptyEntries)[1]; 
09.
string kuerzel = vorname.Substring(0, 3) + nachname.Substring(0, 2); 
10.
Random random = new Random(); 
11.
int pw = random.Next(100000); 
12.
MessageBox.Show(vorname + ", " + nachname + ", " + kuerzel + ", " + pw);
hoffe dies ist etwa, was du dir vorstellst.. ansonsten würde ich dir raten einmal ein onlinebook zu c# durchzulesen!

edit: falls das passwort immer gleich viele ziffern haben soll..

01.
int pw = random.Next(100000, 999999);
gruss tacker
Bitte warten ..
Mitglied: Dipps
09.06.2008 um 16:33 Uhr
die var nutzer wird aber so deglariert?

string nutzer;

oder muss ich da auch noch was beachten den da kommt eine fehler in der zeile

nutzer= sr.readline();

Fehler 1 "System.IO.StreamReader" enthält keine Definition für "readline", und es konnte keine Erweiterungsmethode "readline" gefunden werden, die ein erstes Argument vom Typ "System.IO.StreamReader" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)
Bitte warten ..
Mitglied: tacker
09.06.2008 um 16:38 Uhr
das liegt wohl eher daran, falls du diese zeile wirklich so in deinem code hast

01.
FileStream fs = new FileStream(@startusertxt.Text, FileMode.Open); 
was soll dabei denn die textdatei sein ?
Bitte warten ..
Mitglied: Dipps
09.06.2008 um 17:17 Uhr
habe den fehler gefunden es muss großgeschrieben werden

nutzer=sr.ReadLine();
habe jetzt noch einwenig geändert mit dem Passwort und so.
kann ich aber noch eine sleep funktion einbauen damit nicht drei nutzer oder so die hintereinander sind das selbe passwort haben. sprich so art
sleep 1;
das er am ende 1 sekunde wartet eh er wieder hochspringt
Bitte warten ..
Mitglied: melisa88
14.08.2008 um 18:20 Uhr
Hi ich habe auch eine frage:
wie kann ich in C++ einen string aus einer Datei lesen? Also soweit ich weiß muss man mit input output machen aber wie...?
Bitte warten ..
Mitglied: pkffsl
18.08.2008 um 13:50 Uhr
#include<fstream>

In der Main:

ifstream datei_lesen;

string zeile /*Der String, den du haben willst*/

datei_lesen.open("Pfad zur TXT"); /*Datei wird geöffnet*/

if (!datei_lesen.fail())
{
while(!datei_lesen.eof()) /*Bis Ende der Datei erreicht*/
{
getline(datei_lesen,zeile); /*Hier wird die Zeile in den string zeile
geschrieben*/
}
}

else
cout<<" Lesen der Datei fehlgeschlagen!";

datei_lesen.close(); /*Datei wird geschlossen*/
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (14)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...