2009-07-23 9 views
0

Ich schreibe in eine Datei wie unten gezeigt. Ich bin einhundert Prozent sicher, dass es keine Zeilenumbrüche in den Variablen gibt, die in die Datei geschrieben werden. Bei einer beliebigen Anzahl von Zeichen in jeder Zeile, die in Notepad der entsprechenden Länge gedruckt wird, wird jedoch ein Zeilenumbruch erstellt. Wenn Sie jedoch am Ende der Datei auf delete drücken (selbst wenn Sie delete gedrückt halten), um alle nicht druckbaren Zeichen wie einen Zeilenumbruch loszuwerden, hat dies keine Auswirkungen. Durch Drücken der Rücktaste vor dem ersten Zeichen einer betroffenen Zeile wird das letzte Zeichen der vorherigen Zeile gelöscht, der Zeilenumbruch wird jedoch aufgehoben. Das Schreiben nach dem letzten Zeichen wird sofort in die nächste Zeile verschoben. Ich habe in einer neuen Zeile getestet, indem ich ein Zeichen halte, um zu sehen, ob ich über den Punkt hinaus kommen kann, an dem der Zeilenumbruch beginnt. Ich kann, aber nicht wo die C# geschrieben hat. Ich habe versucht, TYPE KEYWORDS.LOG in dem Befehl, und es druckt nicht die Zeilenumbrüche, so dass ich nicht (denke) es bewirkt, dass ich die Datei für Zeile später lesen. Aber ist das ein Fehler im Editor? In C#? In IO.StreamWriter? In meinem Code? (Ich glaube nicht?) Ist es einfach eine Eigenschaft, die mir nicht bekannt ist?Schreiben in Notepad umschließt einen beliebigen Punkt?

Offenbar ist WORD WRAP nicht eingeschaltet. ABER DANKE. . .

Größe ändern das Fenster nicht umschließt den Text, oder ändern Sie die Effekte, die ich überhaupt beschrieben habe.

// OPEN STREAM TO KEYWORDS.LOG 
StreamWriter fileWrite = new StreamWriter("KEYWORDS.LOG"); 

for (int i=0;i<Referrals.Count();i++) 
{ 
    // FIRST THE URL 
    Console.Write("\n\n{0}\n-", Referrals[i].URL); 

    // NOW TO THE FILE! 
    fileWrite.Write("{0}@", Referrals[i].URL); 


    var SortedKeys = from k in Referrals[i].Keywords.Keys orderby Referrals[i].Keywords[k] descending select k; 
    foreach (string Phrase in SortedKeys) 
    { 
    // NOW TO THE CONSOLE 
    Console.Write("\t({0}) {1}\n", Referrals[i].Keywords[Phrase], Phrase); 

    // NOW TO THE FILE! 
    fileWrite.Write("##{0}##{1}", Referrals[i].Keywords[Phrase], Phrase); 
    } 

    // LINE BREAK FOR FILE! 
    fileWrite.WriteLine(""); 

} 


    // CLOSE FILE STREAM 
    fileWrite.Close(); 

Antwort

0

Ist es möglich, dass Sie "Word Wrap" in Notepad haben? Tut mir leid, wenn das eine offensichtliche Frage ist.

+1

Fenstergröße zum Testen ändern – inspite

-1

Errr ... Doppelprüfung "Format" - "Word Wrap" im Editor.

1

Dies ist definitiv kein Zeilenumbruch Problem. Ich habe dieses Problem in Notepad mit einer früheren Version von Windows (XP, denke ich) und das Limit war 4096 Zeichen. Heute habe ich es in Windows 7-Notizblock versucht und das Limit ist 1024 Zeichen. Mehrere andere Text-Editoren, die ich ausprobiert habe, schreiben ein Limit für "Zeichen pro Zeile" vor, das oft undokumentiert ist. Ich stoße selten auf eine Situation, in der ich mehr als ein paar hundert Zeichen pro Zeile benötige, aber ich sehe keinen Grund, ein Limit aufzuerlegen.

Das erste Problem trat beim Erstellen von ASCII-Stereogrammen auf. Ich wollte eine, die groß genug war, um auf einem Poster zu drucken, und ich sah es im Notizblock an. Sobald ich einen über 4096 Zeichen großen Text generierte, wurde jede Zeile eingepackt. Es sah schrecklich aus.

Diese Text Viewer fügen keine Zeilenumbrüche in den Text ein. Sie ändern nur die Art, wie sie den Text anzeigen. Deshalb können Sie das letzte Zeichen der "Zeile" löschen, wenn sich der Cursor am Anfang der nächsten "Zeile" befindet. Ich setze "Zeile" in Anführungszeichen, weil es nicht wirklich eine Zeile ist. Sie löschen Text irgendwo in der Mitte der echten Textzeile. Vorausgesetzt, der Texteditor verhält sich gut, wenn Sie die Datei speichern, wird immer noch die lange Zeile angezeigt. Wenn Sie den Text später in einem Viewer anzeigen, der ausreichend lange Zeilen anzeigen kann, sollte er korrekt angezeigt werden.