hi,
klingt spannend was du da machen willst. habe bei mir zu hause selbst viel mit parallele schnittstelle gemacht und hardware gebaut.
das prinzip is ganz einfach:
outp(port,byte)
!!! nur bei win9x und ME, DOS !!!
funktion namens outp schreibt an die adresse port (meist 0x378 fuer parallele schnittstelle) den wert byte aus.
um datenleitung 0 zu aktivieren musst du eine 1 als bytewert zum port schicken usw.
kannst mir auch gern ne mail (siehe profil)schreiben.
msp
möglicherweise kannst du in den vga-modus wechseln .soviel ich weiß war das früher immer der directX unter dos?ich weiß dos != win32-konsole, aber gewisse ähnilchkeiten bestehn wohl doch...
Um in eine Datei zu schreiben:
ofstream txt("test.txt",ios::out);
txt<<a<<" "<<b;
txt.close();
mit shellexecute anderes programm aufrufen:
ifstream txt("test.txt");
txt>>a;
txt>>b;
txt.close();
ich gehe davon aus, das nur ein paar zeichen gewechselt werden müsse.
Zuerst lese dein String ein,schreib ihn in die Konsole. Verwende danach ein SetPos oder ähnliches um vor der vorgedruckten Ausgabe zu kommen.
nun kann der Benutzer den ändern.
Danach würde ich die Unterschiede suchen, und die in die Datei schreiben.
paar wichtige Befehle:
fstream
put
if
Ich denke so solltest du weiterkommen.
Wenn du die ganzen datei einlesen willst würde ich nen char * nehmen.
char ausgeben lassen.,und die Änderungen protokollieren oder ähnliches.
Und Änderungen schreiben.
Würde mich wenig interessieren dort zu stehen , unser "Held" tangiert mich nämlich "hinter mir".
Versuch mal "/Zm200" unter Projekt -> Einstellungen -> unten in das Feld am Ende dran
Wenns dann immer noch nicht geht poste deinen Quellcode oder lade ihn irgendwo hoch damit wir ihn kurz downloaden können. Wenn der mit dem zweifachen an Heap nicht auskommt ist etwas mit deinem Quellcode falsch
MfG SideWinder
Canon schrieb:
Ich bräuchte aber noch Hilfe bei der Festlegeung der Punkte auf die man
klicken muss, damit es Button klick angesehen wird, denn in der Version des
Codes, wie er oben steht, geht das nur wenn man exakt ein Punkt trifft. (20/20)
Wie schon mal beschrieben, definiere dir einen Bereich über eine Struktur z. B. und überprüfe, dann ob die geklickte Position innerhalb des Bereichs liegt.
Dein Bereich sollte zwei Punkte haben, z. B. links oben und rechts unten.
Damit solltest du eigentlich alles haben, was du brauchst. Jetzt musst du nur noch überlegen, wie du feststellst, ob dein Punkt im Bereich liegt, aber das sollte eigentlich einfach sein. Einfach mal ein wenig den Kopf drüber zerbrechen ;).
Dieser Thread wurde von Moderator/in AJ aus dem Forum ANSI C in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
@Side
Möglich. Mit den HTML-entities ( &entity; ) hat er teilweise Probleme. Besonders wenn man eigentlich gar keins angeben will ;). Allerdings ist es schon länger her, dass ich so ein Problem hatte. Vielleicht hat er es mittlerweile gelöst.
mEeX schrieb:
Also gar kein Befehl oder so??
Vielleicht ne doofe Frage, aber
wie macht dass dann stdio??
Kann man nicht irgendie auf den VideoRAM oder so zugreifen, bei Basic
konnte man das mit irgendwelchen Variablen oder Zeigern, weiß auch nicht
schon lange her dass ich sowas gemacht habe (glaub mit &HA000)
Klar kannst du das machen.
Wenn du alle Adressen weißt und dir dein Betriebssystem erlaubt einfach irgendwo im Speicher rumzuschreiben, dann geht das schon.
Allerdings finde ich es um einiges einfacher eine Headerdatei einzubinden und eine Codezeile mit einem einfachen printf() zu schreiben als 100 Zeilen Zahlensalat.
Balthazar schrieb:
@SideWinder und AJ
Für Mods eines Programmierboareds seit ihr aber recht misstrauisch... Ihr solltet wissen es gibt sooo viel virenprogrammierer da kommts auf einen mehr oder weniger auch nicht an oder??
:p :p :p zum glück bin ich nicht soo ein vollidi*t... :p :p :p
Hmmm irgendwie versteh ich nicht, wie du von meinem Post auf das vorgeworfene hier schließt.
Aber nun gut, deine erste Frage scheint ja beantwortet zu sein.
Zur zweiten:
Kann mir gut vorstellen, dass du dazu den Treiber des Geräts direkt ansprechen musst. Wenn du Glück hast, dann gibts eine standartisierte Schnittstelle (vielleicht sogar doch WinAPI) dafür. Wenn nicht, dann müsstest du für die verschiedenen Treiber, die es da gibt, es jeweils extra schreiben. Viel Spaß!
Code-Hacker schrieb:
Hi!
Ich habe es eben getestet, das mit dem '\f' sorgt dafür das sofort gedruckt wird. Aber wieso wurde der Thread von C++ nach Konsole verschoben? Das kann man mit einem leicht abgeänderten String doch auch unter Linux machen.
Code-Hacker
Ja das frag ich mich auch. Rund um die Programmierung wäre passender gewesen.
Aber jetzt haben wir ihn ja schon da.
@nero-ex
Ne andere "dumme" Frage (die, ob der Drucker überhaupt läuft, hast du ja schon beantwortet ;)):
Ist dein Drucker überhaupt an LPT1 angeschlossen? Oder ist es ein USB-Drucker (also an USB angeschlossen)?
Hallo
Dafür muss man wissen, dass jedes Zeichen, dass man von der Tastatur eingelesen wird und mit getch() wegspeichert, intern wie eine Zahl zwischen 0-255 behandelt wird (Ascii-Code). Wenn man schreibt
#include <conio.h>
int main (void)
{
char cBuchstabe = getch();
}
und man drück eine 0, dann steht in der Variable eigentlich 48 (Ascii-Code für numerische 0).
Sonderzeichen sind hier aber eine Ausnahme .... Wenn man z.b. eine Pfeiltaste drückt, dann werde zwei Zahlen übertragen, also eine quasi zweistelliger Ascii-Code.
Deshalb fragt Elise die Varible nach 224 und 0 ab, weil diese beide Zeichen signalisieren, dass eine Sondertaste gedrück wurde.
Jetzt muss die zweite Stelle (der zweite Ascii-Code-Teil) mit einer weiteren getch() Anweißung eingelesen und ausgewertet werden.
Was sie aber übersehen/nicht bedacht/vergessen hat ist, dass Enter keine Sondertaste ist, sondern den Ascii-Code 13 hat. Das heißt, wenn du bei ihrem Programm Enter drückst, dann ruft das Programm den If-Zweig nicht auf und es passiert nichts.
Hoffe das hilft und trägt zum Verständnis bei
Mfg Xatian
Oder habe ich ein Verständnisproblem und ich kann nicht über die Codepage die Tastaturbelegung ändern?
Beispiel:
Die deutsche Tastatur erkennt die 'ö' Taste als 'ö'
die US-amerikanische Tastatur erkennt dort aber ein ':'
Geht das nicht über Codepages?
Kleiner Nachtrag: Es ist mir möglich über Call Anweisungen Funktionen aufzurufen, was ich brauche ist eine Funktion "open_console und führe dann die gewünschten Funktionen aus der library aus"
Geigerzeiger schrieb:
das war mir klar aber ein verusch isses wert oder nicht?
Nein eigentlich nicht.
Die CreateDirectory() würd ich eher nicht verwenden, da sich das Includieren der großen windows.h bei einem so kleinen prog nicht auszahlt.
Naja.
Wieso nehmt ihr nicht _mkdir(), wie bereits gepostet??
Das muss, wie schon geschrieben, der Threadersteller entscheiden.
Außerdem sehe ich persönlich keinen großen Unterschied zwischen _mkdir() und CreateDirectory(). Es ist beides systemabhängig und wahrscheinlich ähnlich, wenn nicht sogar gleich, implementiert.
@babelduo
Entweder du liest alles mit fgets() ein (was zu empfehlen ist, da man dort keinen Bufferoverflow riskiert)
oder du gibst beim scanf() am Schluss noch ein \n an.