2012-03-24 13 views
-1

Ich habe einen streamReader erstellt, aber die erste 'ReadLine()' liest die 14. Zeile in der Datei, nicht die erste, und ich weiß nicht, warum das ist .Wie der StreamReader vom Anfang der Textdatei lesen

Mein Code ist:

StreamReader reader = new StreamReader("argus-BIG.txt"); 

//create array to hold data values 
string[] branchData = new string[11]; 

//get 11 lines of branch data file and store in an array 
for (int i = 0; i < 11; i++) 
{ 
    branchData[i] = reader.ReadLine(); 
}    

//new instance of Branch Class 
Branch tempBranch = new Branch(); 

//set branch values from branchData array 
tempBranch.setBranchID(branchData[0]); 
tempBranch.setBranchNickname(branchData[1]); 
tempBranch.setBranchAddressNo(branchData[2]); 
tempBranch.setBranchAddressStreet(branchData[3]); 
tempBranch.setBranchAddressCity(branchData[4]); 
tempBranch.setBranchAddressCountry(branchData[5]); 
tempBranch.setBranchAddressPostCode(branchData[6]);    
tempBranch.setNearestBranch1(branchData[7]); 
tempBranch.setNearestBranch2(branchData[8]); 
tempBranch.setNearestBranch3(branchData[9]); 
tempBranch.setNoCategories(Convert.ToInt32(branchData[10])); 

Ich schrieb eine Test-App, die gearbeitet, dann kopiert und eingefügt den Code (die ich sah identisch) zurück in mein Hauptprogramm, und es funktionierte. Danke für Ihre Hilfe

+9

'die erste' ReadLine() 'liest die 14. Zeile' - nicht mit diesem Code. Posten Sie vollen (echten) Code, schreiben Sie eine kleine Test-App, wenn Sie müssen. –

+0

Sind Sie sicher, dass Sie die richtige Datei lesen? Versuchen Sie, die Datei mit dem vollständigen Pfad zu lesen. – Mehran

+0

Sie sollten auch 'using verwenden (StreamReader reader = new StreamReader (" argus-BIG.txt ")) {...}' –

Antwort

6

Das sollte funktionieren, und ich vermute, dass da noch etwas anderes auf dem Weg passiert. Sobald Sie einen Reader öffnen, bewegt er sich nach unten und muss zurückgesetzt werden, wenn Sie ihn wieder von oben lesen möchten. Vielleicht wurde Ihre Referenz an anderer Stelle offen gelassen (aber das geht davon aus, dass der gepostete Code etwas passiert, was nicht gepostet wurde) oder vor diesem Code verwendet wurde?

Sie können jedoch immer force the position to the top diese Theorie zu überprüfen. Wenn Sie nach diesem Code immer noch in der 14. Zeile sind, dann könnte es irgendwie die Datei selbst sein?

+2

Das OP ist _creating_ ein frischer Strom in der ersten Zeile. –

+0

Ich schrieb eine Test-App, die funktionierte, dann kopierte und klebte den Code (der mir identisch erschien) wieder in mein Hauptprogramm, und es funktionierte. Danke für Ihre Hilfe. – Alex

+0

Danke! Das hat mich gerettet! –