Autor |
Beitrag |
karomue
      
Beiträge: 18
Win XP, Vista, Win 7
Visual C# 2008 Expreß
|
Verfasst: Di 13.04.10 16:41
1.: wie stelle ich Code richtig dar: So ist es falsch, zumindest soviel weiß ich schon.
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";
if (!File.Exists(path)) { string[] createText = { "Hello", "And", "Welcome" }; File.WriteAllLines(path, createText); }
string appendText = "This is extra text" + Environment.NewLine; File.AppendAllText(path, appendText);
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 
      
Beiträge: 18
Win XP, Vista, Win 7
Visual C# 2008 Expreß
|
Verfasst: 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
      
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
|
Verfasst: Di 13.04.10 17:55
karomue hat folgendes geschrieben : | 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 
      
Beiträge: 18
Win XP, Vista, Win 7
Visual C# 2008 Expreß
|
Verfasst: 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
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: Di 13.04.10 21:15
karomue hat folgendes geschrieben : | 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.
karomue hat folgendes geschrieben : | 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.
karomue hat folgendes geschrieben : | 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 
      
Beiträge: 18
Win XP, Vista, Win 7
Visual C# 2008 Expreß
|
Verfasst: 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
      
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
|
Verfasst: Mi 14.04.10 09:44
Hallo Charly,
karomue hat folgendes geschrieben : | 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
      
Beiträge: 3803
Erhaltene Danke: 176
Arch Linux
Python, C, C++ (vim)
|
Verfasst: 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  .
_________________ >λ=
|
|
|