Frage

Verwenden des .NET-Mikroframeworks, der eine wirklich abgeschnittene Version von C#ist. Zum Beispiel, System.String Kaum eine der Leckereien, die wir im Laufe der Jahre genossen haben.

Ich muss ein Textdokument in Zeilen aufteilen, was bedeutet, dass ich durch r n aufgeteilt wird. String.Split liefert jedoch nur einen Split per char, nicht per String.

Wie kann ich ein Dokument auf effiziente Weise in Linien aufteilen (z. B. nicht wahnsinnig über jedes Zeichen im DOC)?

PS System.String fehlt auch eine Ersatzmethode, damit nicht funktioniert.
PPS Regex ist auch nicht Teil des Mikroframewerks.

War es hilfreich?

Lösung

Du kannst tun

string[] lines = doc.Split('\n');
for (int i = 0; i < lines.Length; i+= 1)
   lines[i] = lines[i].Trim();

Angenommen, das µF unterstützt TRIM () überhaupt. TRIM () entfernen alle Whitespace, das kann nützlich sein. Ansonsten verwenden TrimEnd('\r')

Andere Tipps

Ich würde in dem Dokument über jedes Zeichen hinweg schauen, weil dies eindeutig erforderlich ist. Wie denkst du String.Split funktioniert? Ich würde versuchen, dies jedoch nur einmal auf jeden Charakter zu schlagen.

Halten Sie eine Liste der bisher gefundenen Saiten. Verwenden IndexOf Wenn Sie wiederholt den aktuellen Versatz in die Zeichenfolge übergeben (dh die vorherige Übereinstimmung + 2).

Wie kann ich ein Dokument auf effiziente Weise in Linien aufteilen (z. B. nicht wahnsinnig über jedes Zeichen im DOC)?

Wie denkst du den Einbau? Split funktioniert?

Implementieren Sie es einfach selbst als Erweiterungsmethode.

Wie wäre es mit:

string path = "yourfile.txt";
string[] lines = File.ReadAllLines(path);

Oder

string content = File.ReadAllText(path);
string[] lines = content.Split(
    Environment.NewLine.ToCharArray(),
    StringSplitOptions.RemoveEmptyEntries);

Lesen Sie das .NET Micro Framework 3.0, Dieser Code kann funktionieren:

string line = String.Empty;
StreamReader reader = new StreamReader(path);
while ((line = reader.ReadLine()) != null)
{
    // do stuff
}

Dies kann in einem Szenario helfen:

StreamReader reader = new StreamReader(file);    
string _Line = reader.ReadToEnd();
string IntMediateLine = string.Empty;
IntMediateLine = _Line.Replace("entersign", "");
string[] ArrayLineSpliter = IntMediateLine.Split('any specail chaarater');

Wenn Sie eine mögen möchten Mikroframework kompatibel Split -Funktion, die für eine ganze Arbeit funktioniert Zeichenfolge, Hier ist einer, der den Trick macht, ähnlich der regulären Frameworks -Version unter Verwendung von StringsplitOptions.none:

    private static string[] Split(string s, string delim)
    {
        if (s == null) throw new NullReferenceException();

        // Declarations
        var strings = new ArrayList();
        var start = 0;

        // Tokenize
        if (delim != null && delim != "")
        {
            int i;
            while ((i = s.IndexOf(delim, start)) != -1)
            {
                strings.Add(s.Substring(start, i - start));
                start = i + delim.Length;
            }
        }

        // Append left over
        strings.Add(s.Substring(start));

        return (string[]) strings.ToArray(typeof(string));
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top