Laden...

Textdatei öffnen und String auslesen

Erstellt von Knollo vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.202 Views
K
Knollo Themenstarter:in
20 Beiträge seit 2006
vor 17 Jahren
Textdatei öffnen und String auslesen

Hallo,

Ich möchte eine Textdatei vom Client über eine ASP-Seite öffnen und den String auslesen.

Habe zur Zeit diese Möglichkeit gefunden kann mir aber nicht vorstellen, das dies die einzige möglichkeit ist, benötige nämlich auch eine Lösung für das speichern einer Textdatei beim Client

Wer kann weiterhelfen. Viele Grüße Knollo

            
const int BUFFER_SIZE = 255;              
int nBytesRead = 0;              
Byte[] Buffer = new Byte[BUFFER_SIZE];              
StringBuilder strUploadedContent = new StringBuilder("");
                
Stream theStream = FileUpload1.PostedFile.InputStream;              
nBytesRead = theStream.Read(Buffer, 0, BUFFER_SIZE);                
while (0 != nBytesRead)              
{                  
strUploadedContent.Append(Encoding.ASCII.GetString(Buffer, 0, nBytesRead));      
nBytesRead = theStream.Read(Buffer, 0, BUFFER_SIZE);              
}                

string pTextString = strUploadedContent.ToString();              
char[] pSeparators = new char[] {';'};              
string[] pTextArray = pTextString.Split(pSeparators);                

for (int Index = 0; Index < pTextArray.Length; Index++)              
{                  
LabelOutput.Text += "<br/>";                 
LabelOutput.Text += pTextArray[Index];              
}
187 Beiträge seit 2005
vor 17 Jahren

Ich kenne mich nicht so gut mit ASP.NET aus, aber ich würde mal vermuten, dass das Datei auslesen eigentlich gleich laufen sollte:

Einmaliges auslesen/schreiben einer Datei:

//Startet einen Stream, fügt Text eines Strings in die Datei hinzu und schliesst den Stream wieder
System.IO.File.AppendAllText
//Startet einen Stream, schreibt Text eines Strings in die Datei und schliesst den Stream wieder
System.IO.File.WriteAllText
//Startet einen Stream, liest den ganzen Text einer Datei und schliesst den Stream wieder. Rückgabe des Textes als String
System.IO.File.ReadAllText

Ansonsten währen da noch der StreamReader und der StreamWriter.

Btw. Mit dem StringBuilder hab ich schlechte Erfahrung gemacht bzgl. Performance. Vielleicht kannst du Dir den Umweg ersparen

F
10.010 Beiträge seit 2004
vor 17 Jahren

@Knollo:

DU kannst nicht direkt auf dateien eines Klient zugreifen.
Du hast ja da ein FileUploadControll benutzt, das wirklich die datei vom
Browser zum server schickt.

Schreiben kannst Du garnicht direkt.
Wäre ja noch schöner, wen eine ASP.NET Anwendung ( Internetseite ) einfach
so auf meiner Platte rummüllen könnte.

Die Resultate must Du als download anbieten, die der benutzer dann speichern muss.

D
128 Beiträge seit 2005
vor 17 Jahren

Btw. Mit dem StringBuilder hab ich schlechte Erfahrung gemacht bzgl. Performance. Vielleicht kannst du Dir den Umweg ersparen

Hi!

Dass das am StringBuilder lag, dass Du Performance Probleme hattest, kann ich mir nicht ganz vorstellen. Dieser ist doch gerade fuer die Erstellung von langen Strings gut geeignet. Wenn Du nur einen "normalen" String verwendest, dann ist das gerade unguenstig bei vielen String-Operationen. Wenn beispielsweise auf einem String stets append() aufrufst, dann wird der String (z.B. String bla = "Hallo") jedes Mal neu erstellt (bla.append("World") ≤ ist nicht mehr der eigentliche String im Speicher, sondern ein Neuer).

Gruss, DaMoe

K
Knollo Themenstarter:in
20 Beiträge seit 2006
vor 17 Jahren

Danke für die ganzen Antworten, aber kann mir jemand einen BeispielCode aufzeigen, wie ich es besser machen kann.

K
Knollo Themenstarter:in
20 Beiträge seit 2006
vor 17 Jahren

Original von FZelle
Schreiben kannst Du garnicht direkt.
Wäre ja noch schöner, wen eine ASP.NET Anwendung ( Internetseite ) einfach
so auf meiner Platte rummüllen könnte.

Die Resultate must Du als download anbieten, die der benutzer dann speichern muss.

Funktioniert auch nicht wenn der User über uoloadFile eine Datei auswählen würde in die die Daten gespeichert werden sollen?

F
10.010 Beiträge seit 2004
vor 17 Jahren

Nein, Uploadfile überträgt wirklich die Datei vom Browser zum Server und hält sie da vor.

Wenn Du die änderst, tut sich garnichts beim Client, sondern nur auf dem Server.

Du musst dann diese Datei wieder zum Download anbieten.

K
Knollo Themenstarter:in
20 Beiträge seit 2006
vor 17 Jahren

Danke dir dann muss ich mir gleich mal nee andere Lösung einfallen lassen