Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

noobcodierungscode funzt net

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
noop



Anmeldungsdatum: 04.05.2005
Beiträge: 259

BeitragVerfasst am: 22.06.2005, 20:52    Titel: noobcodierungscode funzt net Antworten mit Zitat

Hallo
Ich hab mir, nur zum lernen, ein Codierungsprogramm geschrieben.
Im Programm gibt es das Subprogramm encodieren und decodieren.

1.Wenn ich eine Datei encodiere funzt dsa super.
2.Ich beende das Programm
3.Ich starte es neu und decodiere die codierte Datei
-----funzt alles

Wenn ich aber das Prog starte, dann encodiere und dann direkt decodiere funzt das nicht. Der ignorrt das decodieren einfach.

Hier der Code(die Lines und so könnt ihr eigentlich ignorren)
Code:

DECLARE SUB DECODE ()
DECLARE SUB ENCODE ()
DECLARE SUB MENUE ()
DECLARE SUB MUSIC ()
DECLARE SUB REALEND
DECLARE FUNCTION BRIGHTEND
DECLARE FUNCTION DARKEND
DECLARE FUNCTION WINDOWS
DIM SHARED X AS INTEGER, Y AS INTEGER, BUTTONS AS INTEGER

Declare Function mciSendString Lib "winmm.dll" _
  Alias "mciSendStringA" (ByVal lpszCommand As String, _
  ByVal lpszReturnString As String, _
  ByVal cchReturnLength As Long, _
  ByVal hwndCallback As Long) As Long
Declare Function GetShortPathName Lib "kernel32" _
  Alias "GetShortPathNameA" (ByVal lpszLongPath As String, _
  ByVal lpszShortPath As String, _
  ByVal cchBuffer As Long) As Long

Function WAVEPlay(sFile As String, sAlias As String) As Integer
  Dim sBuffer As String
  Dim sf AS STRING
  sf = Space$(255)
  sBuffer = Space$(255)
  sf = sFile
  lResult = GetShortPathName(sf, sBuffer, Len(sBuffer))
  sBuffer = RTRIM$(sBuffer)
    If mciSendString("open " + sBuffer + " type WaveAudio alias " + sAlias, 0, 0, 0) = 0 Then
      mciSendString "play " + sAlias + " from 0", 0, 0, 0
  END IF
End Function
SCREEN 14,,0,1
resultat = WAVEPlay("ring.wav", "X")
CALL MENUE


FUNCTION WINDOWS
COLOR , 0
CLS
LINE (7, 30)-(315, 133), 11, BF
LINE (7, 134)-(315, 235), 1, BF
LINE (3, 239)-(4, 5), 1, BF
LINE (4, 4)-(4, 3), 1
LINE (5, 239)-(320, 238), 1, BF
LINE (6, 237)-(317, 236), 55, BF
LINE (5, 237)-(6, 30), 55, BF
LINE (5, 29)-(6, 3), 55, BF
PSET (5, 2), 55
LINE (8, 0)-(314, 0), 55
LINE (6, 1)-(7, 1), 55
LINE (6, 2)-(7, 2), 54
LINE (8, 1)-(314, 2), 54, BF
LINE (318, 237)-(319, 5), 1, BF
LINE (315, 28)-(7, 29), 1, BF
LINE (316, 28)-(317, 237), 55, BF
LINE (315, 2)-(316, 2), 54
LINE (315, 1)-(316, 1), 55
PSET (317, 2), 55
LINE (318, 4)-(318, 3), 1
LINE (7, 3)-(317, 27), 55, BF

COLOR 40, 55: LOCATE 2, 17: PRINT "Codix": COLOR 31, 55
LOCATE 2, 2: PRINT MID$(DATE$, 4, 2) + "." + LEFT$(DATE$, 2) + "." + RIGHT$(DATE$, 4)
COLOR 1, 11: LOCATE 10, 17: PRINT "Decode"
COLOR 31, 1: LOCATE 22, 17: PRINT "Encode"
END FUNCTION

SUB MENUE
WINDOWS
BRIGHTEND
COLOR 31, 55
DO
GETMOUSE X, Y,, BUTTONS
IF BUTTONS AND 1 THEN
    SELECT CASE X
        CASE 294 TO 312: SELECT CASE Y: CASE 7 TO 25: IF NONIT = 0 THEN DARKEND: CALL REALEND: END SELECT
    CASE ELSE
        NONIT = 1
    END SELECT
    SELECT CASE Y
        CASE 7 TO 25: SELECT CASE X: CASE 294 TO 312: IF NONIT = 0 THEN DARKEND: CALL REALEND: END SELECT
        CASE 30 TO 133: SELECT CASE X: CASE 7 TO 315: CALL DECODE: END SELECT
        CASE 134 TO 235: SELECT CASE X: CASE 7 TO 315: CALL ENCODE: END SELECT
    CASE ELSE
        NONIT = 1
    END SELECT
ELSE
    NONIT = 0
END IF
LOCATE 2, 28: PRINT TIME$
W$ = INKEY$
SELECT CASE W$
    CASE "D", "d": CALL DECODE
    CASE "E", "e": CALL ENCODE
    CASE CHR$(27): END
END SELECT
LOOP UNTIL INKEY$ = CHR$(27)
END
END SUB

SUB DECODE
CLS
PRINT " Decode"
INPUT " Quelldatei: "; File$
INPUT " Ausgabedatei: "; Path$
PRINT " Einen Moment bitte..."
KILL PATH$
FS = FREEFILE
OPEN File$ FOR INPUT AS #FS
DO UNTIL EOF(FS)
LINE INPUT #FS, TEXT$
IF E = 1 THEN ET$ = ""
IF TEXT$ = CHR$(20) THEN
    OPEN PATH$ FOR APPEND AS #4
    PRINT #4, ET$
    CLOSE #4
    E = 1
ELSE
E = 0
ACODE = VAL(TEXT$)
BS$ = CHR$(ACODE)
ET$ = ET$ + BS$
END IF
IF INKEY$ = CHR$(27) THEN END
LOOP
IF INKEY$ = CHR$(27) THEN END
CLOSE #FS
call menue
END SUB

SUB ENCODE
CLS
PRINT " Encode"
INPUT " Quelldatei: "; File$
INPUT " Ausgabedatei: "; Path$
PRINT " Einen Moment bitte..."
KILL PATH$
OPEN Path$ FOR OUTPUT AS #3
CLOSE #3
OPEN File$ FOR INPUT AS #1
DO UNTIL EOF(1)
LINE INPUT #1, TEXT$
FOR D = 1 TO LEN(TEXT$)
BS$ = MID$(TEXT$, D, 1)
BSA = ASC(BS$)
OPEN Path$ FOR APPEND AS #2
PRINT #2, BSA
NEXT D
OPEN Path$ FOR APPEND AS #2
PRINT #2, CHR$(20)
IF INKEY$ = CHR$(27) THEN END
LOOP
CLOSE #2
CLOSE #3
IF INKEY$ = CHR$(27) THEN END
call menue
END SUB


SUB REALEND
DO
IF INKEY$ = CHR$(27) THEN END
GETMOUSE X, Y,,BUTTONS
IF BUTTONS AND 1 THEN
    SELECT CASE X
        CASE 294 TO 312: SELECT CASE Y: CASE 7 TO 25: END SELECT
    CASE ELSE
        CALL MENUE
    END SELECT
ELSE
    SELECT CASE X
        CASE 294 TO 312: SELECT CASE Y: CASE 7 TO 25: END: END SELECT
    END SELECT
    CALL MENUE
END IF
IF INKEY$ = CHR$(27) THEN END
LOOP UNTIL INKEY$ = CHR$(27)
END
END SUB

FUNCTION BRIGHTEND
LINE (293, 6)-(313, 26), 15, BF
LINE (294, 7)-(312, 25), 297, BF
LINE (298, 12)-(307, 21), 15
LINE (299, 11)-(308, 20), 15
LINE (298, 20)-(307, 11), 15
LINE (299, 21)-(308, 12), 15
LINE (299, 12)-(307, 20), 15
LINE (299, 20)-(307, 12), 15
PSET (298, 11), 86
PSET (298, 21), 86
PSET (308, 21), 86
PSET (308, 11), 86
PSET (294, 7), 84
PSET (294, 25), 84
PSET (312, 25), 84
PSET (312, 7), 84
LINE (295, 25)-(311, 25), 368
LINE (312, 24)-(312, 8), 368
LINE (295, 24)-(311, 24), 4
LINE (311, 24)-(311, 8), 4
LINE (295, 7)-(311, 7), 4
LINE (294, 8)-(294, 24), 4
PSET (293, 6), 55
PSET (293, 26), 55
PSET (313, 6), 55
PSET (313, 26), 55
PSET (294, 6), 54
PSET (293, 7), 54
PSET (312, 26), 54
PSET (313, 25), 54
PSET (312, 6), 54
PSET (313, 7), 54
PSET (294, 26), 54
PSET (293, 25), 54
END FUNCTION


FUNCTION DARKEND
LINE (293, 6)-(313, 26), 15, BF
LINE (294, 7)-(312, 25), 4, BF
LINE (298, 12)-(307, 21), 86
LINE (299, 11)-(308, 20), 86
LINE (298, 20)-(307, 11), 86
LINE (299, 21)-(308, 12), 86
LINE (299, 12)-(307, 20), 86
LINE (299, 20)-(307, 12), 86
PSET (298, 11), 88
PSET (298, 21), 88
PSET (308, 21), 88
PSET (308, 11), 88
PSET (294, 7), 84
PSET (294, 25), 84
PSET (312, 25), 84
PSET (312, 7), 84
LINE (295, 25)-(311, 25), 368
LINE (312, 24)-(312, 8), 368
LINE (295, 24)-(311, 24), 4
LINE (311, 24)-(311, 8), 4
LINE (295, 7)-(311, 7), 4
LINE (294, 8)-(294, 24), 4
PSET (293, 6), 55
PSET (293, 26), 55
PSET (313, 6), 55
PSET (313, 26), 55
PSET (294, 6), 54
PSET (293, 7), 54
PSET (312, 26), 54
PSET (313, 25), 54
PSET (312, 6), 54
PSET (313, 7), 54
PSET (294, 26), 54
PSET (293, 25), 54
END FUNCTION


Jetzt nicht loslachen und sagen: Meine Fresse hast du dir ne Arbeit mit LINE UND PSET gemacht.

/Code funzt jetzt.


Zuletzt bearbeitet von noop am 25.06.2005, 17:37, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 22.06.2005, 22:35    Titel: Antworten mit Zitat

erstens: http://localhost/FreeBASIC/index.php?view=3 *werbungmach*

zweitens:
Wenn du mit RND arbeitest (was ich eben zwar nicht gesehen hab aber vllt hab ichs ja auch übersehen) musst du den Zufallsgenerator mit randomize -1 resetten.
und die andere möglichkeit die mir einfiele: Hast du bei ner Grafikverschlüsselung vllt das CLS vergessen?
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Tomtitom



Anmeldungsdatum: 20.09.2004
Beiträge: 308

BeitragVerfasst am: 22.06.2005, 22:46    Titel: Antworten mit Zitat

Haha, machst du dir eine Arbeit mit PSET und LINE mit den Augen rollen

Also dein Problem ist, dass du immer schreibst
Code:
DO UNTIL EOF(1)

du musst aber anstatt der 1 FS nehmen, da deine Dateien mit der Nummer FS = FREEFILE geöffnet werden.

Sobald schon eine Datei geöffnet wurde ist FS aber nicht mehr 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
noop



Anmeldungsdatum: 04.05.2005
Beiträge: 259

BeitragVerfasst am: 23.06.2005, 13:52    Titel: Antworten mit Zitat

Oh das wusste ich gar nicht das EOF(1) auch angepasst werden muss.
Ich probiers gleich aus.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Kai Bareis



Anmeldungsdatum: 10.09.2004
Beiträge: 545
Wohnort: Baden Würtemberg

BeitragVerfasst am: 23.06.2005, 17:45    Titel: Antworten mit Zitat

@MisterD ich berichtige mal deinen Link http://misterd.dyndns.org/FreeBASIC/index.php?view=3

bei mir gibts zwar auch localhost aber das Verzeichnis nicht lächeln
Es lebe Copy & Paste
_________________
MfG Kai Bareis
Es ist noch kein Meister vom Himmel gefallen! Warum einfach wens auch umständlich geht!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
noop



Anmeldungsdatum: 04.05.2005
Beiträge: 259

BeitragVerfasst am: 24.06.2005, 21:37    Titel: Antworten mit Zitat

Das mir EOF(FS) funzt net.
@MisterD: Und was soll ich mit dem Link?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 25.06.2005, 08:28    Titel: Antworten mit Zitat

das NoPaste-System mit FreeBASIC-Highöighting toll finden und nächstes mal benutzen happy http://misterd.dyndns.org/freebasic einfach deinen Code reinkopieren und schubs bekommst du alles gehighlighted mit Zeilennummern als Website und kannst das dann hier posten happy


PS: Diesmal stimmt der Link peinlich
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Tomtitom



Anmeldungsdatum: 20.09.2004
Beiträge: 308

BeitragVerfasst am: 25.06.2005, 09:42    Titel: Antworten mit Zitat

noop hat Folgendes geschrieben:
Das mir EOF(FS) funzt net.

Klar, du musst das nur durchgängig durchsetzen, also auch
Code:
IF TEXT$ = CHR$(20) THEN
    fs2= FREEFILE
    OPEN PATH$ FOR APPEND AS #fs2
    PRINT #fs2, ET$
    CLOSE #fs2
    E = 1
ELSE

schreiben und am besten auch noch beim Encode alles mit Freefile machen.
Entweder das oder du machst es doch ganz ohne Freefile, wenn du es aber gemischt nimmst, kommt es zu Fehlern.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
noop



Anmeldungsdatum: 04.05.2005
Beiträge: 259

BeitragVerfasst am: 25.06.2005, 17:21    Titel: Antworten mit Zitat

Danke Tomtitom. War zwar nicht das Problem aber hat mich dahingeführt.
Ich hab 2* #2 benutzt. Daran lag es. ALs ich alles in FSX umwandeln wollte ist es mir aufgefallen. Jetzt klappt es.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz