Hallo erstmal
Ich weis, dass dies kein Thema für Elektronik ist, aber da ich die
Zahlen für µC brauche, schreib ich es halt hier rein.
Das Problem: Für ein LED-Moodlight hätte ich gerne u.a. gern drei
Zufallstabellen mit je 256 Einträgen von Ganzzahlen von 0-6 einschl.
(also 0,1,2,3,4,5,6 sollten vorkommen). Soweit kein Problem, diverse
Inetseiten bieten sich da ja an. (http://www.randomnumbers.info/ ist
eine davon).
Nun brauche ich aber für meinen Assembler die Zahlenfolge in einem
bestimmten Format, und zwar muss nach jeder Zahl ein Komma stehen.
Word lässt mich da erwartungsgemäß im Stich, Exel ebenfalls. Die Zahlen
in Excel zu erzeugen und dann in Word umzuformatieren, haut bei der
relativ grossen Menge nicht mehr hin.
Ich hab mir zwar flugs ein C-Programm für den Rechner geschrieben, aber
da krieg ich halt nur den Ausgabebildschirm und da klappt Rüberkopieren
per Zwischenablage auch nicht.
Google brachte mich leider auch nicht viel weiter, und daher wende ich
mich jetzt an euch. Kennt ihr Inetseiten, die meine Sonderwünsche
erfüllen? Oder habt ihr Software, die das kann und könntet mir drei
Tabellen zukommen lassen? Wäre echt klasse.
Ansonsten muss ich alles von Hand machen und das macht keinen Spass...
Hallo Thomas....
ich verstehe dein Problem nicht, soviel dazu. Ist aber auch nicht
wichtig.
Du schreibst dass du ein Programm hast, welches die Daten als ausgabe
auf den monitor schreibt. Schreib diese Daten doch in ein Datei. Falls
du dies nicht kannst, hinterleg hier mal das C-File und ich schreib es
dir eben schnell um.
Gruß
Marek
Das Programm läuft in einer DOS Box.
Mach mal eine DOS Box auf und navigiere in das
Verzeichnis in dem dein EXE ist. Falls du nicht
weist wie das geht (Platte wechseln, Verzeichnis
wechseln) dann mach folgendes:
Kopiere das EXE nach C: und dort auf das Root-Verzeichnis
In der DOS Box machst gibst du jetzt ein
cd \
Jetzt bist du am Root-Verzeichnis (mit "dir" kannst
du dich davon überzeugen.
Jetzt gibst du einfach den Namen deines EXE ein.
MeinExe
da sollte jetzt dein Program laufen.
Und jetzt kommt die Magie: Du kannst die Ausgabe
auch in eine Datei umlenken
MeinExe > Ausgabe.txt
In Ausgabe.txt findet sich jetzt alles wieder, so wie
es von deinem Programm ausgegeben wurde.
Manchmal ist Klickibunti doch nicht so gut. Viele
Dinge lassen sich mit einer Command Line eleganter
lösen. Zumindest als Entwickler sollte man mit einer
Command Line noch umgehen können.
@marek: Nochmals vielen Dank, dein Programm hat echt geholfen.
@ Karl heinz Buchegger: Deine Magie gefällt mir auch hervorragend- das
muss man halt erst mal wissen ;-). Mit der Command Line kann ich
halbwegs umgehen, bin halt leider nicht mehr damit aufgewachsen. Und
Entwickler darf ich mich frühestens in 3 Jahren schimpfen.
Problem bei der Methode: Nach Wechseln ins Verzeichnis der *.exe und dem
obigen Befehl finde ich im gleichen Ordner die Ausgabe.txt, die
allerdings mit kleinen Rechtecken statt Zahlen gefüllt ist. Vielleicht
fehlt mir die passende Schriftart?
In der DOS Box gibt es keine Schriftart. Da ist Text einfach
nur Text.
Schmeiss mal den ganzen clrscr() Unsinn raus.
Braucht kein Mensch.
Einfach nur Text ausgeben, der Redirect ( so nennt
man den > ) leitet die Ausgabe von der Konsole um
in eine Datei. Wenn der Text an der Konsole korrekt
aufscheint, müsste er auch beim redirect richtig
im File landen.
Überzeug dich mal davon mit einem
dir > Ausgabe.txt
Es schadet auch nichts (ganz im Gegenteil) wenn
du zum Schluss noch ein std::endl ausgibst.
Ok, getch und clrscr hab ich rausgehauen, ohne Erfolg. Aber dann habe
ich die Textdatei mal mit Word aufgemacht und siehe da- wunderschöne
Zahlen. Irgendwie mag mein Editor das Format nicht... Warum?
Kommt drauf an.
Welcher Editor ist es denn?
Ansonsten: mach mal auf der Command Line
type Ausgabe.txt
jetzt müsstest du den Inhalt der Datei korrekt
sehen.
Hmm. Kann es sein, dass dein Editor irgendeine Spezial-
Einstellung benutzt wenn er Dateien mit der Endung txt
aufmacht? Du kannst auch jede andere Endung benutzen.
Dem Redirect ist es egal wie du die Datei nennst.
Also mit dem Type-Befehl wird mir die Datei korrekt im DOS-Fenster
angezeigt. Die Endung scheint den Editor nicht zu beeindrucken. Es ist
halt das normale Notepad aus dem Startmenü.
Hm, da fällt mir was ein: Vor ein paar Monaten wurde die Editor von
meinem Virenscanner irrtümlicherweise als befallen gebrandmarkt und ich
hab ihn irgendwie gelöscht/in den Container geschoben. Nach Webrecherche
hab ich ihn Monate später wiederhergestellt.
Vielleicht ist ja da was schiefgelaufen.
Jedenfalls danke für die Hilfe, hab ja einiges gelernt :)
> Vielleicht ist ja da was schiefgelaufen.
Sieht wohl so aus.
> hab ja einiges gelernt
Da verlieren kleine Hilfsprogramme gleich ihren Schrecken
wenn man sich um das Schreiben der Ergebnisse in Dateien
nicht kümmern muss.
@Thomas,
nur mal so zum Spass, weil die Leute immer so über Word schimpfen:
Ich bin mal auf die Webseite http://www.randomnumbers.info/ gegangen und
habe mir 1000 Zahlen von 0-6 geben lassen. Das Ergebnis nach Word
kopiert und dann über ERSETZEN den Text so umformatiert, dass jede Zahl
in einer Zeile steht, mit einem "," dahinter. Geht mit
SUCHEN NACH:(?)
ERSETZEN DURCH:\1,^|
Häkchen bei Platzhalterzeichen verwenden (mit Erweitern öffnen).
Hinter (?) ist noch ein Leerzeichen, weil die Zahlen durch ein
Leerzeichen getrennt sind, das im Ergebnis wohl nicht erscheinen soll.
(?) bedeutet, ein Zeichen Suchen und merken.
\1 bedeutet, das vorher gemerkte Zeichen einzusetzen
^| ist ein manueller Zeilenwechsel
Man kann sich auch mehrere Zeichenfolgen merken und dann über \1, \2
usw. wieder holen.
Word erlaubt mittlerweile das Ersetzen von regulären Ausdrücken ähnlich
wie in UNIX. Nur leider weiss es keiner. Bei Clicki-Bunti Powerpoint
Anwendern ist das wohl auch besser so, aber wir sollten damit umgehen
können. In Excel habe ich etwas äquivalentes noch nicht gefunden.
Gruß
Rolf
Word kann schon seit Urzeiten Sonderzeichen, wie Tabs, Zeilenwechsel,
etc. suchen und ersetzen. Mit der Kombination Excel und Word bekommt man
normalerweise alle diese Fragestellungen in weniger als einer Minute
gelöst. Excel exportiert als Standard mit tabs zwischen den Werten einer
Zeile, und die lassen sich dann in Word gegen alles mögliche
austauschen.
In dem Fall hier braucht es aber doch weder Excel noch Sonderzeichen.
Zahlen in ein Word-Doc als unformatierten Text einfügen, Ersetze " "
gegen ",", fertig.
Dafür lohnt es sich doch nicht, einen Compiler anzuwerfen.
Oliver
Es ist schon ein grundsätzlicher Unterschied zwischen einigen
Sonderzeichen ersetzen und den Möglichkeiten von regulären Ausdrücken.
Und die kann Word noch nicht solange.
Unix Freaks nutzen sowas dauernd in vi, awk und ged.
Stell die nur vor, zwischen den Zahlen wäre kein Leerzeichen, dann
hättest du mit normalen Mitteln keine Chance, bzw. müsstest für jedes
Zeichen eine eigene Ersetzung machen.
1234567890abcdefghijklmnopq in
1,2,3,4,5,6,7,8,9,0,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q, zu ersetzen ist
dann schon recht aufwändig. (?) durch \1, funktioniert immer noch.
Ersetzen von Hand scheidet bei einigen hundert oder tausend Ersetzungen
eh aus und ab drei mal hintereinander das Gleiche tun bewirkt bei mir im
Hirn Schmerzen.
Und genau da kommen die regex.
Nimm eine Namenstabelle
Schmitz, Hans
Müller, Egon
Meier, Peter
und versuche die in die Form Vorname Nachname zu bringen.
(*), (*)^13
\2 \1^13
und du bist da. Die ^13 steht hier für die Absatzmarke (normales Return)
Und ja, du hast Recht, dafür lohnt es sich wirklich nicht, den Compiler
anzuwerfen.
Gruß
Rolf