Autor Beitrag
karomue
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 18

Win XP, Vista, Win 7
Visual C# 2008 Expreß
BeitragVerfasst: Di 13.04.10 16:41 
1.: wie stelle ich Code richtig dar: So ist es falsch, zumindest soviel weiß ich schon.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
using System;
using System.IO;
class Test
{
    public static void Main()
    {
        string path = @"D:\NB_old\DPlatte\Loox\Logs\Wintec\WBT202\logs\teststrecke_COM6_091028_133450.ubx";

        // This text is added only once to the file.
        if (!File.Exists(path))
        {
            // Create a file to write to.
            string[] createText = { "Hello""And""Welcome" };
            File.WriteAllLines(path, createText);
        }

        // This text is always added, making the file longer over time
        // if it is not deleted.
        string appendText = "This is extra text" + Environment.NewLine;
        File.AppendAllText(path, appendText);

        // Open the file to read from.
        string[] readText = File.ReadAllLines(path);
        foreach (string s in readText)
        {
            Console.WriteLine(s);
        }
    }
}

Stammt aus der Hilfe und wurde als Windows... (nicht als Konsolenanwendung) kreiert. Nun kommt aber kein "Console.WriteLine", gelesen wird aber (Aha-Effekt...)

Wo steckt der (Anfänger-) Fehler?

Und sorry, ich komme mit der Syntax des Forums noch nicht klar.


Zuletzt bearbeitet von karomue am Di 13.04.10 18:06, insgesamt 1-mal bearbeitet
karomue Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 18

Win XP, Vista, Win 7
Visual C# 2008 Expreß
BeitragVerfasst: Di 13.04.10 17:29 
Gut, beschränken wir uns mal auf die Darstellung von Code hier im Forum. Ich finde bei "Neues Thema" nichts, wie man das richtig macht.

Zum Code selbst: offenbar wird bei einer Windowsanwendung nichts in die (DOS-) Console geschrieben. Macht nicht so viel, denn es gibt im Debugger ja ein Ausgabefenster. Hier müsste man wohl über FORMS ein Ausgabefenster erstellen, richtig?

Nächster Schritt ist nun, wie komme ich zu einer Dateiauswahl a la Datei-Explorer. Methoden-Vorschläge?
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 13.04.10 17:55 
user profile iconkaromue hat folgendes geschrieben Zum zitierten Posting springen:
1.: wie stelle ich Code richtig dar:

Variante 1: Beginne den Textauszug mit [ cs] und beende ihn mit [ /cs] (jeweils ohne das Leerzeichen).
Variante 2: Öffne in der Button-Leiste "Bereiche", wähle in der ComboBox C# aus (oder das, was du gerade brauchst), markiere den Code-Bereich, drücke den Plus-Button.

In beiden Fällen ist das mit der "Vorschau" zu prüfen.

Das kannst du auch nachträglich erledigen: Gehe auf deinen Beitrag mit dem Schere-Button usw.

Über den Inhalt der Fragen und den Code will ich erst nachdenken, wenn der Code formatiert ist.

Jürgen
karomue Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 18

Win XP, Vista, Win 7
Visual C# 2008 Expreß
BeitragVerfasst: Di 13.04.10 18:16 
Hallo Jürgen,

fein, danke. Damit ist die Code-Darstellung auch klar.

Zusatzfrage: hier wird ein Textfile mit File.ReadAllLines zeilenweise dargestellt, das ist seeehr einfach. Ich frage mich aber dabei, warum sind die beiden Spezialisten, die mir in C++ und C# "Spielprogramme" erstellt haben zunächst über eine Methode FileOpen gegangen? Bietet diese besondere Vorteile?

ReadAllLines würde mir (momentan) ja genügen, ich vermute aber, dass es irgendwelche Nachteile beinhaltet. Muss auch mal (versuchen) nachzusehen wie der nette C#-Kollege dann wirklich zum Lesen kam. Mit FileOpen ist es ja dann alleine auch nicht getan.

Das bereits kurz angeschnittene Problem, wie wäre das anzugehen? Im Moment steht ja das zu untersuchende File im Code (StringPath=...). Das ist reichlich blöd, sinnvoll wäre eine Auswahl a la Datei-Explorer. Wobei ich jetzt noch nicht die Hilfe befragt habe, das ist auch recht mühselig, wenn man nicht weiß wonach man (wirklich) suchen soll.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Di 13.04.10 21:15 
user profile iconkaromue hat folgendes geschrieben Zum zitierten Posting springen:
Macht nicht so viel, denn es gibt im Debugger ja ein Ausgabefenster. Hier müsste man wohl über FORMS ein Ausgabefenster erstellen, richtig?
Wenn dir die Anzeige in der IDE genügt, musst du lediglich System.Console durch System.Diagnostics.Debug ersetzen.

user profile iconkaromue hat folgendes geschrieben Zum zitierten Posting springen:
Nächster Schritt ist nun, wie komme ich zu einer Dateiauswahl a la Datei-Explorer. Methoden-Vorschläge?
Schau dir einmal die OpenFileDialog-Klasse an. Bei weiteren Fragen in diese Richtung, die also nicht direkt deinen ersten Code betreffen, aber bitte ein neues Thema eröffnen.

user profile iconkaromue hat folgendes geschrieben Zum zitierten Posting springen:
Bietet diese besondere Vorteile?
File.Open liefert einen Stream zurück, dadurch muss nicht die gesamte Datei auf einmal im Speicher gehalten werden. Solange wir hier aber nicht von hunderten von MBs sprechen, ist das ganz klar ein Nachteil, nämlich unnötige Komplexität :) .

_________________
>λ=
karomue Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 18

Win XP, Vista, Win 7
Visual C# 2008 Expreß
BeitragVerfasst: Di 13.04.10 21:40 
Hallo Sebastian,

danke. Schau ich mir gerne an.

Ziel soll sein, log-Files von GPS-Receivern auszuwerten. Die liegen im Text-Format vor und haben Extensions .txt, .nmea im allgemeinen, handelt es sich um Geräte mit u-blox-Chips und sind die logs mit u-center aufgenommen, auch .ubx.

Dann gibt es noch Logger-logs, die haben im Fall von Wintec-Geräten ein proprietäres Format mit .tkx (x=1,2,3)

So ein log schreibt /sek. normal 3-6 Zeilen. Nimmt man eine Urlaubsfahrt, dann kommt hier ne ganze Menge zusammen. Die Auswertung kann aber Zeile für Zeile erfolgen, dazu muss nicht das ganze File eingelesen werden.


Noch eine Forumsfrage: wo und wie kann man eine Grußformel/Name permanent hinterlegen, im Profil habe ich nichts gefunden.
Edit: gefunden, Signatur...

Grüße, Charly
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mi 14.04.10 09:44 
Hallo Charly,

user profile iconkaromue hat folgendes geschrieben Zum zitierten Posting springen:
So ein log schreibt /sek. normal 3-6 Zeilen. Nimmt man eine Urlaubsfahrt, dann kommt hier ne ganze Menge zusammen. Die Auswertung kann aber Zeile für Zeile erfolgen, dazu muss nicht das ganze File eingelesen werden.

Dann bietet sich ein TextReader mit ReadLine an.

Gruß Jürgen
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 14.04.10 18:46 
Oder ab .NET 4 per File.ReadLines - genauso einfach wie ReadAllLines, hält aber wie der StreamReader immer nur eine Zeile im Speicher :) .

_________________
>λ=