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
1 | #include <iostream.h> |
2 | #include <conio.h> |
3 | #include <stdlib.h> |
4 | |
5 | void main (void) |
6 | { |
7 | randomize(); |
8 | clrscr(); |
9 | for (int i=0; i<256; i++){ |
10 | cout << random(6) <<","; |
11 | } |
12 | getch(); |
13 | } |
Wär klasse, wenn du dich drum kümmern würdest!
So schick mir mal deine email adresse.... dann bekommst du eine *.zip file. Gruß Marek
Super... t///hom/as_b///aech//le@gm//x.de ohne sämtliche / dazwischen. Danke!
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.