Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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.

Geschrieben
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

Geschrieben

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

Geschrieben

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

Geschrieben

Und Woodstock?...blinkt schon was?

Haste vielleicht irgendwas halbwegs einfaches gefunden?

*neugierigbin*

(...mir is leider keine wirklich einfache löesung eingefallen)

Goos

Geschrieben

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.

Geschrieben

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 :D

(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

Geschrieben

@ 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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

"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

Geschrieben

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

Geschrieben

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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...