Zum Inhalt springen

Shamharoth

Mitglieder
  • Gesamte Inhalte

    59
  • Benutzer seit

  • Letzter Besuch

  1. Hallo zusammen, ich möchte mich bezüglich QRcode / PNG etwas weiterbilden und habe auch eine kleine lib für Linux gefunden hierfür: librqencode. Damit kann ich recht einfach mir QRcode - Barcodes erzeugen lassen. Nach kurzer Suche im Inet habe ich gleich noch den Sourcecode eines Programmes gefunden, das die lib benutzt und mithilfe libng das Ergebnis als eine PNG-Datei schreibt: qrenc_8c-source. ich habe mir für das Speichern die Funktion "writePNG" kopiert und für meine Tests etwas angepasst. Nun würde ich gerne das PNG-Bild nicht als Datei speichern, sondern das Ergebnis erst einmal in eine Zeichenkette als Buffer wegkopieren. Leider habe ich aktuell keine Möglichkeit gefunden dies hinzubekommen. Hat hier jemand eine Idee? Danke im voraus Sham.
  2. funktionieren sollte es, wenn du eine virtuelle (?) Methode in der Elternklasse schreibst und diese dann in der Kindklasse überschreibst. So würde ich es wenn dann machen. Da ich seit längerem nicht mehr so intensiv mit Vererbung gearbeitet habe muss ich sagen: Alles ohne Gewehr (*Peng*)! edit: ghaa nich gesehen, dass das Thema schon a Monat alt is >_<'
  3. Da wenn dann vom gleichen Bereich nur gelesen wird, brauch ich doch keine Synchronisation, oder? So wie ich es verstanden hab brauch ich Synchronisation nur dann wenn z.B. 2 Threads das gleiche Element zur gleichen Zeit bearbeiten wollen. Bei mir ist durch die Zuweisung zu einem Thread eine eindeutige Zuordnung. Ist das überhaupt sinnig einem Thread pointer auf die entsprechenden Vectoren zu übergeben? Es gibt ja verschieden Möglichkeiten zwischen Hauptprogramm und Threads Daten auszutauschen (Stichwort Shared Memory), jedoch sind die Daten, die verarbeitet werden unterschiedlich Groß, was Shared Memory ja unbrauchbar macht (Und es ist höchst warscheinlich 5 mal um die eck geguggd). Zum Beispielcode .. kann ich das jetzt nichtmehr Rekonstruieren. Anscheinend war Irgendwo a bug vorgestern drann. pthread_t ntid; int wert = 0; void *my_thread(void *arg) { for(int i = 0; i < 40; i++) { usleep(1000 * 200); printf("%d", i); wert+=100; } pthread_exit(NULL); } int main(void) { int err; err = pthread_create(&ntid, NULL, my_thread, NULL); if(err != 0) return 1; sleep(1); for(int abc = 0; abc < 8; abc++) { sleep(1); printf(" %d %d\n", abc,wert); } return 0; } Jetzt funktioniert das Beispiel (Wegen den Variablendefinitionen nich wundern. In Testprogrammen nehm ich immer seltsame Namen für Variablen).
  4. Zwar ist das Thema schon 10 Tage alt, trotzdem möcht ich mal mein Senf dazugeben ;D 1. if (iaktuellerspieler == 1) { stein == '1'; } if (iaktuellerspieler == 2) { stein == '2'; }[/PHP] Klar ist ja schon wbezgülich dem Vergleich (==) und der Zuweisung (=) Jedoch ist mir aufgefallen: stein ist doch int. warum gibst du ihm dann den ascii Wert von der Nummer? Ich rate dir das etwas einheitlicher zu machen: Mach am besten das ganze Brett als 2D-Chararray. Nur so reine Anregungen: Mach doch ein globales Array bezüglich Steinnummern: [PHP]char csteinspieler[2] = {'1','2'}; dann kannst du beim seitzen wie folgt machen: void ueberpruefeundsetze() { x = ieingabe; if ((ieingabe < 1) || (ieingabe > 7) || (ieingabe == 0)) //Eingabe�berpr�fung { printf("\nUngueltiger Zug.Bitte erneut eingeben!"); eingabe(); } for (y=6; y>0; y--) { if (iSpielfeld[x][y] == 0) //Das ist dafür da, dass der Stein auf die unterste Position im Array kommt, die mit einer 0 belegt ist. { // da so, die Spielregeln von 4 gewinnt ist. iSpielfeld[x][y] == csteinspieler[iaktuellerspieler-1]; system("cls"); zeigespielfeld(); } } gewinnabfrage(); }[/PHP] Weitere Anregung Warum gleich das ganze Array abprüfen? Überprüf doch einfach die 5 Möglichkeiten, die der aktuelle Stein "hervorruft"? So in etwa (mal dahingschreibselt ): [PHP]void gewinnabfrage() { //Prüfe alle X-Linie if(x > 2) { for(int i = 1; i < 4; i++) { if(iSpielfeld[x][y] != iSpielfeld[x-i][y]) break; } igewinn = true; } if(x < 3) { for(int i = 1; i < 4; i++) { if(iSpielfeld[x][y] != iSpielfeld[x+i][y]) break; } igewinn = true; } //Prüfe Y-Linie if(y < 4) { for(int i = y; i > x-4; i++) { if(iSpielfeld[x][y] != iSpielfeld[x][i]) break; } igewinn = true; } //Prüfe Diagonalen if(y < 4 && x > 2) { for(int i = 1; i <= 3; i++) { if(iSpielfeld[x][y] != iSpielfeld[x-i][y-i]) break; } igewinn = true; } if(y < 4 && x < 3) { for(int i = 1; i <= 3; i++) { if(iSpielfeld[x][y] != iSpielfeld[x+i][x-i]) break; } igewinn = true; } } Kann Fehler haben aber auch weil ich das ma hingeklatschd hab. Alle Angaben ohne Gewehr (*PENG*)
  5. Hallo zusammen Momentan bin ich drann mit pthreads unter linux zu arbeiten. Dabei werden die Threads sozusagen als "Arbeiter" genutzt. Der Hauptprozess übergibt den Threads n Objekt mit nem pointer auf nen vector<string> in dem der zu bearbeitenden Inhalt steht, ein pointer vector<string> mit der id des threads, der den eintrag bearbeiten soll und dann noch die id des threads. Zudem noch paar andre Werte die jetz nur Zweitrangig sind. Der Hauptprozess selbst befüllt danach nur noch die Elemente und sagt welcher Thread sich kümmern soll. Sind alle Fächer belegt (Vorgabe max. 20 Fächer hab ich mir gesagt), soll ne Pause gemacht werde. Ähnlich sollen dann die Threads arbeiten. Sollen prüfen, ob ein Fach für Sie bereitsteht, wenn ja dann soll der Thread was machen, wenn nein soll er den Prozessor nicht unnötig belasten und soll ne Pause machen. Hier die Frage: sleep mud usleep (?) arbeiten ja threadabhängig (sleep wirkt sich nur auf den aktuellen Thread aus. Doch wenn ich Sleep im Hauptprozess nutze, werden da die andren Threads mit schlafen gelegt? Hab nämlich testhalber 'n Programm gemachd und dabei gab es das Problem, dass die Testausgabe anders ausgschaut hat als ich erhofft habe. Ich habe dabei ein Thread erstellt welches eine Schleife ausführt in dem insg. 5 mal Pause (sleep(1)) gemacht wird und danach eine Ausgabe. Das Gleiche sollte auch im Hauptprozessor passieren nur mit sleep(2), damit der Hauptprozess länger dauert . Nochmal insgesammt der grund für den Thread: Wirkt sich sleep dann nur auf Hauptprozess aus oder auch auf die Threads? Oder hab ich einfach n Fehler gemacht bei meinem Testprogramm? Danke im voraus
  6. gut na dann sag ich doch mal danke ^^ ich überleg mir mal ob ich es so in das projekt einbinden kann insgesammt war es eh eher nur eine optionale idee, damit es weniger fehler auftauchen könnten wenn es benutzt werden würde. darum nochmal ein danke an alle
  7. weils schöner aussieht Ne... Das is leider eine vorgabe vom Projekt
  8. *Mein Post noch mal durchles* K ich habs etwas ungenau geschrieben. Das mit den Klassen is auf die vordefinierte Variable bezogen Ansonste hätte ich sicherlich die gleiche Probleme wie bei Strukturen Also dass ich entsprechend der struktur, die übergeben wird eine entsprechende funktion schreib? Problem ist ja, dass daas Programm unter C laufen soll, kann eine Überladung nicht eingesetzt werden (deswegen void*) würde ich explizit für jede Art a funktion schreiben (mit entsprechenden funktionsnamen) ist bei der bibliothek nach aussen hin mehrere Funktionen sichtbar. Dies wollte ich jedoch vermeiden. Nach aussenhin gibt es nur eine Funktion, die aufgerufen werden kann.
  9. :upps k so wird also das ausgerechnet :/ da muss ich wohl nochmal wieder binärumrechnung anschaun ... (wissen etwas verstaubt)
  10. ou was mir grad noch auffällt: es ist ich das Ö sondern das ö! sry is mir grad erst aufgefallen >_<'
  11. wenn ich ganz blöd war hab ich falsch umgerechned ^^ ... ich hab einfach das charsymbol in int gecastet und die minuswerte *-1+127 (0-127 ist ja ASCII-bereich) gerechnet. somit hat man die wertigkeit 0-255 (Byte) / 00-FF ... un zwischen den system hab ich einfach KCalc genutzt ...
  12. hab bei mir über export geschaud und LANG is bei mir "en_US.UTF8". bezüglich der richtung (BE / LE) wird dies ja nicht bei UTF-8 Berücksichtigt, wodurch das auch nicht der grund sein sollte.
  13. gut evtl liegts an der firmenfunktion, da nämlich durch die aufgefüllte 0er er früher halt machd und zum schluss noch eine 1 in der inbuff-variable steht (sollte ja 0 stehen meines wissens). müsste für den fall wohl ne eigene kleine funktion baun, die dann das richtig machd. die konvertierung in widechar sollte hald für das vereifnachte vergleichen von strings mit zeichen (so z.b. abfrage ob '︾' im text steht (als banalstes beispiel, da dieser 3Bytes in UTF-8 verbrauchd). Mit MB is es ja schwieriger das zu vergleichen. was mir JETZT aufgefallen ist: die codierung der MB-zeichen ist anormal so z.B. das Ö: dieses Zeichen schaud so aus im MB-String: Jedoch aus versch. quellen hab ich erfahren, dass ein UTF-8-codiertes Zeichen bei solchen zeichen wiefolgt aussehen (binär):110XXXXX 10XXXXXX linux sollte doch eigentlich standartmäßig UTF-8 codierte konsolenein- und ausgaben haben ... zudem werden alle symbole richtig angezeigt (das "︾" habe ich aus ner UTF-8 Tabelle über Wiki kopiert)
  14. schad schad ..... das blöde man kann ja auch keine feste werte dem vorinitialisieren ... sonst hätte ich dem direkt ne "id" verpassd :/ würde ich die bib nur für C++ un nich noch für C schreiben, könnte ich klassen machen ... aba so :/... danke trotzdem ^^
  15. hallo zusammen. zur zeit schreib ich rechd viele fragen, aber mir fallen sachen ein, die ich nich brauch und mir fallen sachen nicht ein, die ich einfach brauch. situation: eine funktion hat n void-pointer. dieser wird je nach anlass zu nem struct gecastet (verschiedene). frage: ist es möglich neben prüfung ob dieser NULL ist auch das prüfen ob es die richtige struct ist? ansonsten kann man ja den größten blödsin casten ^^

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...