Zum Inhalt springen

FinalFantasy

Mitglieder
  • Gesamte Inhalte

    966
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von FinalFantasy

  1. Naja, ich mein. Es kommt halt drauf an, was man dann damit machen will, und wie es verwendet wird. Aber naja, ich mein, mann kanns auch unnötig umfangreich und kompliziert machen.
  2. Jetzt wirds immer komplizierter. *gg*
  3. Für Windowsoberflächen müsstest du nur die cout Aufrufe durch Zuweisungen an entsprechende Variablen ersetzen. Im Endeffekt gehts ja hier ums Prinzip.
  4. Also ehrlich gesagt kann ich mit dem Code selber nicht viel Anfangen. Hab mich eigentlich noch nicht mit Templates befasst. Ne Erklärung wär vielleicht auch nicht schelcht.
  5. Komplizierter gehts nicht? Willst ihn jetzt ganz verwirren?? Und was soll da jetzt der Vorteil gegenüber meiner Lösung sein, ausser dass es komplizierter ist?? :confused:
  6. Hi, kann mir mal jemand ein Projekt von Visual C++ 6.0 schicken, wo die SDL (Simple Direct Media Layer) verwendet wird? Ich bekomm nichtmal das einfache 'Initializing SDL'-Beispiel zum laufen. Krieg da nen Linkerfehler: LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
  7. Also das war der Code meiner Methode: int CEncodeDlg::SwapChars(CString &text, char* from, char* to) { if( strlen(from) != strlen(to)) return -1; int counter = 0; for(int i = 0; i < text.GetLength(); i++) { for(unsigned int k = 0; k < strlen(from); k++) { if(from[k] == text.GetAt(i)) { text.SetAt(i, to[k]); counter++; break; } } } return counter; } [/PHP] und das der Aufruf: [PHP] SwapChars(m_text, "EPSTIWKNUVGCLRYBWHMDOFXQAGepstiwknuvgclrybwhmdofxqag", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"); Die Idee ist folgende: Du übergibst der Mehode den Text, der codiert werden soll als Parameter, nämlich 'text'. Du willst jetzt einzelne Buchstaben durch andere austauschen, ja? Die beiden char* geben an, welche Buchstaben durch welche ersetzt werden sollen, nach dem Prinzip: der erste Buchstabe im Array 'from' wird ersetzt durch den ersten Buchstaben im Array 'to'. der zweite Buchstabe im Array 'from' wird ersetzt durch den zweiten Buchstaben im Array 'to'. ... Die erste if-Abfrage stellt nur sicher, dass die Arrays 'from' und 'to' gleich lang sind, so vermeide ich nur einen Access out of Bounds dieser beiden Arrays; Die äussere for-Schleife zählt von 0 bis je nachdem wie lange der Text 'text' ist. mit Text.GetAt(i) kriege ich den Buchstaben aus dem Text, der an i-ter Stelle steht, also alle von 0 bis Ende, weil die äussere for-Schleife i ja durch zählt. Also kriege ich bei jedem Schleifendruchlauf einen einzlenen Buchstaben aus 'text'. Die innere for-schleife, loopt nach dem selben Prinzip über das Array 'from' (welches das Array ist, in dem steht, welche Zeichen ersetzt werden). Mit from[k] kriege ich also den Buchstaben, der an k-ter Stelle in 'from' steht. Also auch wieder einem nach dem anderen. Die if-Abfrage darunter schaut jetzt, ob das Zeichen aus 'text' an i-ter Stelle gleich dem Zeichen aus 'from' an k-ter Stelle ist. Wenn das der Fall ist, muss ja das Zeichen ausgetauscht werden, weil ja in 'from' alle auszutauschenden Zeichen stehen. Das Zeichen dass dafür eingesetzt werden muss, steht ja in dem Array 'to' an gleicher Stelle, wie in dem Array 'from'. Also muss auch from[k] durch to[k] ersetzt werden. Austauschen tue ich das Zeichen mit text.SetAt(i, to[k]), also das i-te Zeichen in 'text' durch das k-te Zeichen in 'to' ersetzen. Der innere for-loop läuft ja über das ganze Array 'from'.... Wenn das Zeichen aber bereits ausgetauscht wurde, sagen wir gleich mal das erste, also E wird zu A, dann brauche ich ja über den Rest von 'from' nicht mehr loopen, und um das zu vermeiden, steht das break; da. Das kann man aber auch weglassen, dass spart nur ein bischen Performance. Ist jetzt ein bischen blöd, weil ich das Beispiel in MFC geschrieben habe, und da bekommt man halt den Inhalt von Textfeldern als CString zurück, deshalb hier nochmal der Code in reinem (Plattform- und Compilerunabhänigem Code) C-Code und als Funktion: int SwapChars(char *text, char* from, char* to) { if( strlen(from) != strlen(to)) return -1; int counter = 0; for(int i = 0; i < strlen(text); i++) { for(unsigned int k = 0; k < strlen(from); k++) { if(from[k] == text[i]) { text[i] = to[k]); counter++; break; } } } return counter; } [/PHP] Vielleicht führt das zu einem einfacherem Verständnis. Wenn du noch fragen hast, kannst du dich ja gern melden.
  8. Achso, dacht ich mir schon. Dann sollte es aber heissen: Das Thema ist nicht komplex _genug_ für einen Fachinformatiker. und nicht: Das Thema ist _nicht zu komplex_ für einen Fachinformatiker Leider bin ich selber noch nicht so weit, aber in einem Jahr wirds bei mir auch ernst. Vielleicht sollte ich auch schonmal anfangen zu überlegen. Was ist Citrix??
  9. Hast du dich verschrieben, oder ist das wirklich die Begründung?
  10. Ist Release 4.6c Wenn ich das Standard weglasse, kommt "Table nicht vollständig spezifiziert".... Komisch....
  11. Bei mir macht die Zeile CREATE DATA: lt_data TYPE STANDARD TABLE OF (l_tabname). Probleme. So hab ichs gestern ja auch schon probiert, aber ich krieg immer den Fehler: "TABLE" konnt nicht interpretiert werden. Mögliche Fehlerursachen: Schreibweise, oder Kommafehler.
  12. Wie funktioniert denn das bei Borland? Gibts da auch MFC, oder direkt über die WinAPI??
  13. Ahja, genau sowas in der art, will ich auch machen. *gg* Hab schon geschaut, aber du warst nicht in ICQ. :bimei Hast du meine E-Mail addy noch?
  14. Das find ich aber jetzt schlecht, ich brauch die Daten aber in einer internen Tabelle zur Weiterverarbeitung. Ich brauch also so und so eine Tabelle, mit einem Dynamischen Typ
  15. Ahh, also das kleine Beispiel hab ich jetzt auch zum laufen bekommen. Der Selectionscreenparamter muss natürlich auch p_from heissen, und nicht p_where.... :confused: Was mir aber noch nicht gefällt, ist dass die Tabelle Zeilenweise (also SELECT ... ENDSELECT) gelesen wird. Mal schaun, das geht anders bestimmt auch noch.
  16. Da kriege ich leider eine Kurzdump mit dem Fehlertext: Es wurde versucht, einem typisierten Feldsymbol ein Feld zuzuweisen, das nicht den erforderlichen Typ besitzt. bei dem ASSIGN. Ich versteh das mit den Objekten zwar nicht wirklich aber der Ansatz scheint gut zu sein. Werd mich jetzt noch ein bischen durch die Hilfe wühlen. *gg*
  17. Hab ich gelesen, aber ich hab ja auch geschrieben, dass ichs nicht verstehe. Erste zeile: Was ist das data??? Zeile zwei gibt bei mir einen Fehler: statt meine_variable wurde meine_variable-feld erwartet. Kann aber auch sein, dass Zeile zwei nicht geht, weil Zeile eins nicht funktioniert...
  18. ^^ Gibt bei mir nur eine Fehler, weil 'objekt' unbekannt ist Mit Objekten hab ich noch nie gearbeitet, und ehrlich gesagt, versteh ich auch nicht wie obiges Beispiel funktionieren soll.... Also Codebeispiel: SELECTION-SCREEN BEGIN OF BLOCK 123 WITH FRAME. PARAMETERS: p_what(100) TYPE c obligatory. SELECTION-SCREEN END OF BLOCK 123. DATA: itab type ?????. SELECT * FROM (p_from) INTO itab. [/PHP] wie krieg ich den Typ für itab??
  19. Das hilft mir doch nichts!! Ich weiss doch gar nicht, ob jetzt die Tabelle SFLIGHT, oder SPFLI, oder sonstirgendeine Tabelle lesen muss, das bestimmt ja der User frei durch seine Eingabe in das Textfeld!!! Und ich weiss zur Zeit wo ich den Report schreibe doch noch gar nicht, was der User da jemals reinschreiben wird.... Irgendwie versteht das Problem niemand. Probiers doch mal aus: Selektionscreen mit einem Textfeld. Wenn ich SPFLI in das Textfeld schreibe, soll mir der Inhalt der Tabelle SPFLI als Liste ausgeben werden. Wenn ich aber in das Textfeld SFLIGHT schreibe, soll mir der Inhalt der Tabelle SFLIGHT ausgeben werden, und die hat ja eine ganz andere Struktur als SPFLI....
  20. Genau das hab ich grad auch ausprogrammiert. *gg* Wenn du willst kann ich es dir ja mal schicken. Dann brauch ich deine E-Mail per PM. Ist aber in MFC/VisualStudio geschrieben.
  21. Du brauchst eine ASCII Tabelle. Die Alohanumerischen Zeichen (Gross und Kleinbuchstaben auch) liegen darin hintereinander. Somit kannst du abfragen: if( buchstabe > 60 && buchstabe < 128) (Unter der Annahme, dass die Ziechen zwischen ASCII-Code 60 und 128 liegen...) Somit werden nur Buchstaben und Zahlen verschoben, Sonderzeichen dagegen bleiben unbehandelt. Jetzt kannst du einzelne Zeichen vertauschen, indem du Eine Zahl dazu addierst. Angnommen A hat den ASCII-Wert 92, dann hat C logischerweise den ASCII-Wert 94. zeichen += 2; Macht also aus einem A ein C. Wenn alle Buchstaben gleichmässig verschoben werden, geht das so relativ einfach (Cäsarianische Verschlüsselung oder so ähnlich schimpft sich das auch) Falls jedem Zeichen zufällig ein anderes Zeichen zugeordnet ist, kommt du wohl um einen grossen Switch nicht herum: switch(ziechen) case 'A': zeichen = B; break; case 'B': zeichen = K; break; .... Durch die Zeichenkette loopen und einzelne Zeichen behandeln kannst du etwa so: for( int i = 0; i < strlen(string); i++) { switch (string[i]) { //für den Switchcase case 'A': string[i] = 'B'; } string[i] += 2; //für die andere Methode } [/PHP] Ich hoffe dass war einigermassen verständlich. Für weitere Fragen, kannst du mir ja mal eine PM schicken, falls es eilt... Edit: Achja, im Endeffekt benutzt du hier zwar Pointer (bei meinem Vorschlag) durch die [i] Zugriffe auf den String, das hat aber meiner Meinung/Empfinden nach noch nicht viel mit Pointerarithmetik zu tun. OOP ist für so ein kleines Programm eigentlich nur unnötiger Mehraufwand. Soll es denn ein Windowsprogramm oder eine Kommandozeilenprogramm werden? Mit Borland kenn ich mich nicht so wirklich aus, ich benutze das Visual Studio. Aber in diesem Forum geht es ja eigentlich nur um grundlegende Probleme in C/C++....
  22. Hallo, ich habe in eine SAP Report einen Selection-Screen, auf deisem kann ein Tabellenname angegeben werden. Der Parameter heisst p_itab. Nachher will ich aus dieser Tabelle alle Einträge auslesen. Dazu brauch ich eine internet Tabelle, die den gleichen Typ hat, wie die Tabelle, deren Namen der Benutzer eingegeben hat. mit folgendem Select kann ich die Tabelle lesen: SELECT * FROM (p_itab) INTO TABLE itab. Angenommen der Benutzer hat als Tabellennamen SPFLI eingeben, so müsste itab wie folgt definiert sein: data itab type standard table of SPFLI. Genau das SPFLI soll aber dynamisch sein, also der Benutzer soll jede Tabelle aus dem DD angeben können. Wie kriegt ich meine interne Tabelle vom richtigen Typ?? data itab type standard table of (p_itab). funktioniert leider nicht.
  23. Unter störung versteh ich halt einen kleinen Fehler im MPEG Stream, zum Beispiel, ein defekter Frame oder sowas. GSpot checkt die Files doch nicht durch, sondern liest nur die Codecinformationen und solche sachen aus, oder nicht?
  24. Hi, ich benutze den DVD-Author von TMPEG und habe ein kleines Problem. Sobald in dem Videofile, auch nur eine kleine Störung drin ist, bricht DVD-Author die Verarbeitung ab, und lässt den Rest von dem Video einfach weg. Kennt jemand ne andere Authoringsoftware, oder ein Tool, mit dem man die MPEGs reparieren, oder wenigstens durchchecken kann??
  25. Ahja, nach diesen Lösungen dürfte ich auch in etwa auf ca. 70% kommen. Ahja, kann mir mal jemand erklären, was ein Seitendrucker ist? Frage 1.6! Ich weiss, es steht im IT-Handbuch, aber ich weiss immer noch nicht, was das ist.

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