Woodstock Geschrieben 2. April 2002 Geschrieben 2. April 2002 Hallo! Ich würde gerne einen Schriftzug in einer Konsolenanwendung blinken lassen. Geht das, und wenn ja mit welchem Befehl? Bine Zitieren
Poldi Geschrieben 2. April 2002 Geschrieben 2. April 2002 ich denke mal so eine funktion wirste dir für c selber schreiben müssen; zeitgesteuert den text löschen und hinschreiben ... Zitieren
GCRACK Geschrieben 2. April 2002 Geschrieben 2. April 2002 Welchen Compiler nutzt du denn?? Bei Borland gehts glaube ich mit dem Befehl TEXTCOLOR(WHITE+BLINK); Bei Microsoft kann ich es dir leider nicht sagen! Zitieren
Woodstock Geschrieben 2. April 2002 Autor Geschrieben 2. April 2002 Ich arbeite mit dem Visual Studio (also Visual C++). @Poldi: Welche Funktion soll ich denn da für eine Art Timer nehmen? Bine Zitieren
Goos Geschrieben 2. April 2002 Geschrieben 2. April 2002 Poldi heiss ich zwar nich , aber bau doch einfach n Sleep(xxx) in deine Schleife mit rein. Zitieren
Woodstock Geschrieben 2. April 2002 Autor Geschrieben 2. April 2002 Hmm, ich fürchte das funktioniert nicht. Ich möchte während mein Programm läuft (und der User nur warten kann) blinkender Weise 'SYSTEM ARBEITET' ausgeben. Da kann ich aber keine Sleep Funtkion einbauen. Ne Idee wie ich das lösen kann? Bine Zitieren
Goos Geschrieben 2. April 2002 Geschrieben 2. April 2002 Na dann musst halt fuer die Blinkeschrift, wenn du das sleep verwendest nen extra thread aufmachen Zitieren
Goos Geschrieben 2. April 2002 Geschrieben 2. April 2002 naja ich koennt ja jetzt erzaehlen, wie ich das mein....gehen wuerds wohl, aber ich bin gerade stark am zweifeln. Irgendwie muss es doch auch viel einfacher gehen so ne "doofe" blinkeschrift hinzukriegen Ich werd ma gucken ob ich was find. Zitieren
DocMabuse Geschrieben 2. April 2002 Geschrieben 2. April 2002 Original geschrieben von Woodstock Ich arbeite mit dem Visual Studio (also Visual C++). ... Da wirst Du wohl Pech haben. VC++ nutzt nämlich eine andere, eingeschränkte Version der "conio.h". Diese Version enthält aber keine Definitionen für Farben mehr, wie das z. B. bei Borland noch der Fall ist. Allerdings ist es nicht möglich, die Borland-Header-Datei für VC++ zu nutzen. Da streikt der Compiler. Grüsse DocMabuse Zitieren
Goos Geschrieben 2. April 2002 Geschrieben 2. April 2002 Nuja Farben ansich gibts dann ja in der wincon.h. Ueber SetConsoleTextAttribute() kriegt man ja ganz nett Farben rein, aber im Moment hab ich echt keine Idee, wie man auf relativ einfache Art den Text dann auch noch zum blinken bringt. Goos Zitieren
Orffi Geschrieben 2. April 2002 Geschrieben 2. April 2002 conio.h gehört nicht zum Standard und deswegen kocht da jeder Hersteller sein eigenes Süppchen. (Da kann man mal sehen, wie nützlich es ist einen Standard zu haben. Oder man ärgert sich jetzt darüber, daß der Standard keine schönen Textausgaben vorgesehen hat.) Natürlich kann man die Header-Dateien nicht austauchen. Denn in Header-Dateien stehen ja (fast) nur Deklarationen und keine Definitionen der Klassen und/oder Funktionen. Ich persönlich würde ja auf das Blinken verzichten... Jan Zitieren
Goos Geschrieben 3. April 2002 Geschrieben 3. April 2002 Und Woodstock?...blinkt schon was? Haste vielleicht irgendwas halbwegs einfaches gefunden? *neugierigbin* (...mir is leider keine wirklich einfache löesung eingefallen) Goos Zitieren
Woodstock Geschrieben 4. April 2002 Autor Geschrieben 4. April 2002 Nein, ich habe nichts. Naja, dann muss es eben ein einfacher Schriftzug tun. Ist nur irgendwie doof, weil man denken könnte das Programm ist abgestürzt, weil es recht lange braucht. Bine Zitieren
Klotzkopp Geschrieben 4. April 2002 Geschrieben 4. April 2002 Wie wäre es damit: Du setzt in regelmäßigen Abständen (z.B. wenn eine Datei durchsucht wurde), an immer dieselbe Stelle des Bildschirms nacheinander die Zeichen - / | \. Das sieht dann aus wie ein sich drehender Strich, und der Benutzer sieht, dass das Programm noch läuft. Alternativ sind immer länger werdende Linien von Punkten oder eine Prozentanzeige möglich, wobei Du bei letzterer wissen müsstest, wieviel insgesamt zu erledigen ist. Zitieren
Goos Geschrieben 4. April 2002 Geschrieben 4. April 2002 Hmmmm scheint wohl echt nich grad einfach zu sein so ne Schrift blinken zu lassen. So wie ich das oben schonmal erwaehnt hab gehts ja schon, aber ich finds schon n bissl umstaendlich nur um ne Schrift blinken zu lassen. Wennd magst, kannsts aber so machen Woodstock. #include "stdafx.h" #include <conio.h> #include "Windows.h" unsigned long __stdcall blingn(LPVOID lParam); int main(int argc, char* argv[]) { bool ende_flag; ende_flag = false; CreateThread(NULL, 0, blingn, &ende_flag, 0, NULL); Sleep(1000); printf("irgendwas"); Sleep(1000); printf("irgendwas muss"); Sleep(1000); printf("irgendwas muss ich hier ja machen"); Sleep(1000); ende_flag = true; getch(); return 0; } unsigned long __stdcall blingn(LPVOID lParam) { int test; COORD cor; cor.X = 10; cor.Y = 10; bool *ende_flag; ende_flag = (bool *) lParam; while(*ende_flag == false) { SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), cor); test = SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | BACKGROUND_GREEN ); cprintf("Hello World!\n"); Sleep(100); SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), cor); test = SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | BACKGROUND_RED ); cprintf("Hello World!\n"); Sleep(100); } return true; } [/PHP] Ich hab das ma schnell gebastelt...is wohl nich wirklich toll, aber es funzt (ich hoff mal, dass es nicht wirklich ueber irgendn flag geht die Schrift zum blinken zu bringen, sonst werd ich hier sicher noch gesteinigt ) Goos Zitieren
Woodstock Geschrieben 4. April 2002 Autor Geschrieben 4. April 2002 @ Klotzkopp: Es handelt sich hierbei aber nicht um das Programm. Es ist ein weitergehendes. Dieses Programm ist eine Art Suchmaschine welche auf die jetzt fertig erstellte Index Datei zugreift. Hier wird nur eine Datei geöffnet. Und er befindet sich in einer Schleife in der ungefähr drei vier oder noch mehr Minuten sich aufhält, und sonst nichts (sichtbares) geschieht. Bine Zitieren
Goos Geschrieben 4. April 2002 Geschrieben 4. April 2002 Mich wuerde aber doch sehr interessieren, ob es da nicht irgendwas ganz einfaches zum Thema blinken gibt, also falls jemand ne Moeglichkeit hat bitte melden, ich koennt das naemlich ganz gut brauchen Goos Zitieren
Orffi Geschrieben 4. April 2002 Geschrieben 4. April 2002 Ich habe keine Ahnung worum es in diesem Programm geht, deswegen bitte das Folgende nicht als Angriff ansehen. Vielleicht geht es ja nicht anders. Wenn ich mich aber 4 Minuten in einer Schleife (ich habe es jetzt so verstanden, daß Du etwas suchst), dann würde ich meine CPU-Zeit nicht damit "verschwenden", eine Schrift zum Blinken zu bringen. Ich würde vielmehr schauen, ob es nicht Möglichkeiten gibt, die Suche zu beschleunigen. Persönlich finde ich es schon ein wenig heftig einen Thread zu starten, um Text zum Blinken zu bringen. Vielmehr würde ich schauen, ob ich nicht einen Interrupt finde, den man dafür benutzen könnte. Will meinen: Ich würde mich in eine Interruptbehandlung einklinken. Jan Zitieren
Woodstock Geschrieben 5. April 2002 Autor Geschrieben 5. April 2002 Nun, ich kann das Programm nicht mehr beschleunigen. Am Anfang lief es ca. 1,5 Stunden, jetzt, dadruch das ich auf verzeigerte Listen umgestiegen bin, läuft es noch knapp 5 Minuten. Und das fast nur in der einen Schleife. Und sorry wenn ich nicht weiß ob es in C/C++ so einen 'Befehl' gibt. Ich weiß in der Schule in Turbo Pascal gibt es so einen. Und das war es ich wissen wollte. Bine Zitieren
Orffi Geschrieben 5. April 2002 Geschrieben 5. April 2002 "Und sorry wenn ich nicht weiß ob es in C/C++ so einen 'Befehl' gibt." Was soll das denn? Habe ich irgendetwas dazu gesagt, daß man irgendetwas wissen müßte? Ich glaube es ist normal wenn man etwas nicht weiß. Ich habe mit dem ersten Posting nur erklären wollen, daß man Header-Dateien nicht einfach austauschen kann. Mit meinem zweiten Posting wollte ich Dich keineswegs angreifen und habe dies auch gleich in den ersten Satz hineingeschrieben. Ein Threadwechsel ist auch nicht kostenlos, er kostet Zeit und das bedeutet, daß Deine Suche noch länger dauert. Das meinte ich mit verschwenden. Wenn Du Dich angegriffen fühst, dann tut es mir leid, ich kann nur nochmal sagen, daß dies nicht meine Absicht war. Jan Zitieren
Woodstock Geschrieben 5. April 2002 Autor Geschrieben 5. April 2002 Was meinst Du mit Threadwechsel? Ich kenne Threads nur hier aus dem Forum. Bine Zitieren
Woodstock Geschrieben 5. April 2002 Autor Geschrieben 5. April 2002 Ich glaube wir haben hier aneinander vorbeigeredet. Ich dachte Du meinst diese Thread hier, in diesem Forum den ich aufgemacht habe um herauszufinden ob es einen Befehl gibt damit ein Schriftzug blinkt. Aber inzwischen denke ich, das ein Thread auch etwas aus der Sprache C/C++ ist. Bine Zitieren
Klotzkopp Geschrieben 5. April 2002 Geschrieben 5. April 2002 Threads sind Untereinheiten von Prozessen, die nach einem bestimmten System abwechselnd ausgeführt werden. Wie das genau läuft, hängt vom Betriebssystem ab. Damit kann ein Programm sozusagen mehrere Dinge "gleichzeitig" tun. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.