for (int i = startwert; i <= endwert; ++i) {
    System.out.println(((i % 2) == 0) ? (""+i) : "");
}
...zur Antwort

Definitiv, kommt nur darauf an was du damit machen willst :P

Wenn du nur den Inhalt einer Textdatei auslesen willst reicht das hier vollkommen aus:

String getFileContents(String file) {
    FileInputStream ifs = new FileInputStream(new File(file));
    Scanner scn = new Scanner(ifs);
    StringBuffer buf = StringBuffer();
    while (scn.hasNextLine()) buf.append(scn.nextLine());
    ifs.close();
    return buf.toString();
}
...zur Antwort

Mit Notepad kannst du eigentlich rein gar nichts an Binärdateien verändern. Wenn du es troztzdem versuchst, stürzt das Programm höchstwahrscheinlich an einer bestimmten Stelle ab oder wird erst gar nicht von Windows geladen.

Eine Ausnahme gibt es allerdings, nämlich Zeichenketten. Die solltest du auch problemlos mit dem Notepad bearbeiten können. Dabei musst du allerdings beachten dass die Zeichenkette nach der Bearbeitung immer noch genau die gleiche Länge haben muss wie vorher.

Wenn du die Datei nicht mit Notepad modifizieren willst, kannst ich dir zum allgemeinen Aufbau von Binärdateien (PE=Portable Executable unter Windows) sagen.

Die allerersten Daten im Programm, also Offset 0, ist immer der sog. DOS-Header, der noch aus alten Zeiten von Microsoft stammt, und ist wie folgt aufgebaut:

typedef struct _IMAGE_DOS_HEADER
{
     WORD e_magic;
     WORD e_cblp;
     WORD e_cp;
     WORD e_crlc;
     WORD e_cparhdr;
     WORD e_minalloc;
     WORD e_maxalloc;
     WORD e_ss;
     WORD e_sp;
     WORD e_csum;
     WORD e_ip;
     WORD e_cs;
     WORD e_lfarlc;
     WORD e_ovno;
     WORD e_res[4];
     WORD e_oemid;
     WORD e_oeminfo;
     WORD e_res2[10];
     LONG e_lfanew; // Zeiger auf neuen (NT-)header
} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;

Die Variable e_lfanew ist eine Art Zeiger auf den Windows-NT-Header, der einiges mehr über die Datei aussagt. Eigentlich nicht direkt ein Zeiger, aber es gilt dafür folgendes:

PVOID ImageBase;
IMAGE_DOS_HEADER *hdr = (IMAGE_DOS_HEADER*)ImageBase;
IMAGE_OPTIONAL_HEADER *hdrNT = (IMAGE_OPTIONAL_HEADER*)((DWORD)ImageBase + hdr->e_lfanew);

der IMAGEOPTIONALHEADER sieht dann so aus:

typedef struct _IMAGE_OPTIONAL_HEADER {
  WORD                 Magic;
  BYTE                 MajorLinkerVersion;
  BYTE                 MinorLinkerVersion;
  DWORD                SizeOfCode;
  DWORD                SizeOfInitializedData;
  DWORD                SizeOfUninitializedData;
  DWORD                AddressOfEntryPoint;
  DWORD                BaseOfCode;
  DWORD                BaseOfData;
  DWORD                ImageBase;
  DWORD                SectionAlignment;
  DWORD                FileAlignment;
  WORD                 MajorOperatingSystemVersion;
  WORD                 MinorOperatingSystemVersion;
  WORD                 MajorImageVersion;
  WORD                 MinorImageVersion;
  WORD                 MajorSubsystemVersion;
  WORD                 MinorSubsystemVersion;
  DWORD                Win32VersionValue;
  DWORD                SizeOfImage;
  DWORD                SizeOfHeaders;
  DWORD                CheckSum;
  WORD                 Subsystem;
  WORD                 DllCharacteristics;
  DWORD                SizeOfStackReserve;
  DWORD                SizeOfStackCommit;
  DWORD                SizeOfHeapReserve;
  DWORD                SizeOfHeapCommit;
  DWORD                LoaderFlags;
  DWORD                NumberOfRvaAndSizes;
  IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
} IMAGE_OPTIONAL_HEADER, *PIMAGE_OPTIONAL_HEADER;

Ist zwar vielleicht nicht ganz das, wonach du gefragt hast, aber ich hoffe ich konnte ein Paar Leuten helfen.

...zur Antwort

Jo das kenne ich auch ..

Ich löse das immer indem ich ca. jede 3/4h mein Handgelenk, naja ich sage mal wieder einrenke :D Aber nach einer weile CS:GO gewöhnt man sich dran ^^

Und stell sicher dass du DPI auf ca. 400 hast (kommt auf deine Auflösung an); EPP ausgeschaltet hast und Mausgeschwindigkeit auf 6/11

...zur Antwort
C++ Spiele Programmieren 2D Anfänger

Hallo,

Ich will mich in der Zukunft mit Programmierung, besonders mit Videospielprogrammierung beschäftigen. Spiele zu machen wollte ich schon immer... ^^.

Also ich weiß, dass die meisten guten Spiele in C++ Programmiert worden sind.. Bitte korrigieren falls ich falsch liege :) und deshalb wollte ich auch mit C++ meinen Einstieg machen. Ich weiß dass Programmieren sehr viel Arbeit ist und man selbst für ein kleines Spiel einen großen Zeitaufwand. Aber es geht mir ja nicht um den besten Ego Shooter in 3D ,der alles toppen soll.... Ich möchten bestenfalls mit meinen Freunden, die sich auch für dieses Hobby interessieren, ein kleines 2D Spiel erstellen. Sowas wie Super Mario oder so... ^^. Irgendeiner kann ja Grafiken machen, ein anderer Sounds und andere den Code schreiben...

Ich habe aus meiner Schulzeit gute Erfahrung im Umgang mit Java, HTML, JavaScript und auch privat ein bisschen mit C.

Nun möchte ich aber wissen, wie ich mir den Einstieg in die Welt der Videospielprogrammierung am einfachsten machen kann. Kann mir irgendeiner eine gute und einfache Möglichkeit nenne? Videotutorials, Bücher oder sonst was? ^^

Ach ja als letzte Frage noch: Darf ich mir die Sachen so vorstellen wie ich es beschrieben habe? Also mit Arbeitsteilung für Grafik und Code usw.? Oder läuft sowas ganz anders ab? Bitte korrigiert mich und klärt mich in allem auf. ^^ Vielleicht sollte ich mir ja doch ein anderes Hobby suchen, wenn alle sagen, dass Programmieren ziemlich schwer ist oder so.....

...zur Frage

C++ ist zwar oft ein Garant für Geschwindigkeit, aber halt nicht immer (Minecraft z.B. läuft in der Java-VM) ^^

Ich persönlich würde mit Java anfangen (z.B. http://lwjgl.org/, bisschen mit OpenGL / OpenAL experimentieren ; dort gibt es auch tutorials) Später vielleicht C++/DirectX :)

...zur Antwort
Leute, die immer übertreiben müssen...

Hi, Kennt ihr auch Leute, die immer übertreiben müssen? Zum Beispiel, um irgendwas zu erreichen?

Eine Freundin von mir ist einer dieser Menschen. Sie übertreibt beispielsweise, wenn man etwas, von dem sie möchte dass man es tut, nicht machen will. Sowas banales wie, wenn man zusammen auf einer Party ist und sie gehen will und unbedingt möchte, dass man mit geht (wobei der Weg sowieso nur bis zur Haltestelle der gleiche wäre). Wenn man sagt, man würde gerne noch auf der Party bleiben, fangen die Übertreibungen an. Sie sagt dann sowas wie: "ich will nicht alleine gehen. Wenn ich auf dem Rückweg vergewaltigt werde bist du daran schuld." Oder: "mir geht es sooo schlecht. Ich habe schon den ganzen Abend Rückenschmerzen und kann kaum noch alleine laufen! Du darfst mich nicht im Stich lassen!"

Wie geht man am besten mit diesen Menschen um?

Klar, man lässt sich nicht von ihnen vorschreiben, was man zu tun und zu lassen hat oder geht darauf ein. Jedoch finde ich es ziemlich anstrengend, wenn sich dieses Verhalten bei solchen Menschen immer und immer wiederholt und sie, auch wenn man sie darauf anspricht und sie in dem Moment zugeben, dass es blöd war, es beim nächsten mal wieder tun und nicht daraus lernen. Da es ja nicht immer bei den gleichen Unternehmungen passiert, kann man schlecht sagen: "dann gehe ich einfach nicht mehr mit ihr feiern", und die Freundschaft wegen sowas im Sande verlaufen zu lassen wäre auch schade.

Was macht ihr, um euch nicht jedes mal wieder über solche Menschen zu ärgern?

...zur Frage

Die muss man in manchen Situationen einfach mal ignorieren. Irgendwann werden sie anfangen es zu merken.

...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.