Kleine Frage mit Bytes

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Goblin

Betreff: Kleine Frage mit Bytes

BeitragMo, März 12, 2007 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
also...hähäm
ich verschlüssle gerade und habe eine frage:

Code: [AUSKLAPPEN]
a = readbyte(ursprungs_datei)
a = a +10 ;cäsar verschlüsselung
Writebyte ziel_datei,a


Frage: was passiert wenn a einen wert über 255 hat und dann mit Writebyte in die zieldatei geschrieben wird? (es ist zwar noch nicht passiert aber is ist wichtig) geht das oder muss ich dann sowas hier schreiben:

Code: [AUSKLAPPEN]
If a = 256 then a = 1
if a = 257 then a = 2
usw...


oder schaltet des alleine um?

ich hoffe ihr peilt was ich meine...
thx

skey-z

BeitragMo, März 12, 2007 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
probier es doch einfach aus, dann wüsstest du das
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter
 

Goblin

Betreff: ?!

BeitragMo, März 12, 2007 19:53
Antworten mit Zitat
Benutzer-Profile anzeigen
dann sag mir was für ein zeichen das 255. byte ist

Tankbuster

BeitragMo, März 12, 2007 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
mach doch einfach noch schnell en kleines prog:
Zitat:
Writebyte datei,255

Wofür brauchste denn Zeichen?^^
Twitter
Download Jewel Snake!
Windows|Android

BtbN

BeitragMo, März 12, 2007 20:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
While byte > 255
    byte = byte - 256
Wend
While byte < 0
    byte = byte + 256
Wend


Das sollts sein

StepTiger

BeitragMo, März 12, 2007 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder man nutzt gleich Mod.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Axe

Betreff: Re: Kleine Frage mit Bytes

BeitragMo, März 12, 2007 22:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Goblin hat Folgendes geschrieben:

Code: [AUSKLAPPEN]
If a = 256 then a = 1
if a = 257 then a = 2
usw...


oder schaltet des alleine um?


Ob das alleine geht oder nicht weiß ich auch nicht.

Aber zur Sicherheit hilft das hier (nach der Berechnung, bevor das Byte geschrieben wird):
Code: [AUSKLAPPEN]

if a>255 then a=a-256


Falls du das auch mit einer Subtraktion vorhast auch noch das:
Code: [AUSKLAPPEN]

if a<0 then a=a+256


MfG Axe
Projekte:
Ping Pong 2D Version 2.1
Weitere Infos: axesite.de
 

Goblin

Betreff: jo

BeitragFr, März 16, 2007 8:59
Antworten mit Zitat
Benutzer-Profile anzeigen
ok dank ich habs sowiso schon aufgegegben. ich wollte ein programm coden, das mir dateien verschlüsselt. bb ist aber zu langsam. ich hab mal ausgerechnet: 1 Terrabyte würde 316 Jahre dauern. naja trotzdem danke

BladeRunner

Moderator

BeitragFr, März 16, 2007 12:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich behaupte mal dass das nicht an BB liegt sondern an deiner Programmstruktur, denn normalerweise ist der Dateizugriff unter BB nicht grade langsam.

Abgesehen davon ist die Umpfriemelerei unnötig, solange Du keine negativen Zahlen hast. die Bytes die über dem untersten liegen werden einfach ignoriert.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, März 17, 2007 10:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab es auch mal getestet und hatte einen Datendurchsatz von 3 MB/sek.
.... ca 4 Tage für 1 TB!
[BB2D | BB3D | BB+]

Lunatix

BeitragSa, März 17, 2007 10:33
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Wer will schon ein TB verschlüsseln ?!
2. Wenn ein Byte über 255 ist, fängt es wieder bei 0 an, heisst 300 = 300-255 = 45
3. Code: [AUSKLAPPEN]
Print a
hätte es auch getan Rolling Eyes
4. Bei einer Cäsar verschlüssellung kannst du die Bytes nicht einfach begrenzen, sonst kommen beim entschöüsseln falsche werte raus.
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, März 17, 2007 13:28
Antworten mit Zitat
Benutzer-Profile anzeigen
TB verschlüsseln war auch nur eine Hochrechnung

Verschlüsseln:
(Byte+Wert%) Mod $100

Entschlüsseln:
(Byte+$100-Wert%) Mod $100
[BB2D | BB3D | BB+]
 

Goblin

Betreff: hier der code von meinem programm

BeitragSa, März 17, 2007 13:42
Antworten mit Zitat
Benutzer-Profile anzeigen
hier der code:
vllt findt jemand den fehler warum es so langsam istCode: [AUSKLAPPEN]
   Case button_verschlüsseln
     If file1$ = "" Notify "Es wurde keine Datei ausgewählt!" : Goto punkt
      der_odschgo$ = Right$(file1$,4)
      If der_odschgo$ = ".gsm" Then Notify "Die angegebene Datei ist schon verschlüsselt." Goto punkt
    file1_zum_bearbeiten$ = file1$
      file1_zum_bearbeiten$ = file1$
     SetGadgetText label_status,"Status: Verschlüsseln"
     zieldatei = WriteFile(file1_zum_bearbeiten$+".gsm")
     von_datei = ReadFile(file1_zum_bearbeiten$)
      If von_datei = 0 Then Notify "HÄ???"
     groesse = FileSize(file1_zum_bearbeiten$)
     groesse1# = Float#(groesse)
     xy# = Float(1)/groesse1#
      Notify "Merke dir deinen Key gut!"+Chr$(13)+"Key: "+SliderValue(slider),1
     Repeat
     a = a+1
     von_file_to_file = ReadByte(von_datei)
     von_file_to_file = von_file_to_file +SliderValue(slider)
      If von_file_to_file > 255 Then von_file_to_file = von_file_to_file - 255
     WriteByte zieldatei,von_file_to_file
     SetStatusText(window,"Byte: "+a+"/"+groesse)
     SetGadgetText window,a+"/"+groesse
     xy# = xy# + Float(1)/groesse1#
     UpdateProgBar progbar,xy#
     Until Eof(von_datei)
     SetGadgetText window,"Goblin Secret Maker"
     CloseFile von_datei
     CloseFile zieldatei
     UpdateProgBar progbar,1.0
     Notify "Fertig" : Goto punkt


    Case button_entschlüsseln
     If file1$ = "" Notify "Es wurde keine Datei ausgewählt!" : Goto punkt
     der_odschgo$ = Right$(file1$,4)
     If der_odschgo$ <> ".gsm" Then Notify "Die angegebene Datei ist nicht verschlüsselt." Goto punkt
    file1_zum_bearbeiten$ = file1$
    von_datei = ReadFile(file1$)
    a_len_1 = Len(file1$)
    file1_file2$ = Left$(file1$,a_len_1-4)
    zieldatei = WriteFile(file1_file2$)
     If von_datei = 0 Then Notify "HÄ???"
    groesse = FileSize(file1_zum_bearbeiten$)
    groesse1# = Float#(groesse)
    xy# = Float(1)/groesse1#
    a = 0
    Repeat
     a = a+1
     von_file_to_file = ReadByte(von_datei)
     von_file_to_file = von_file_to_file - SliderValue(slider)
      If von_file_to_file < 0 Then von_file_to_file = von_file_to_file + 255
     WriteByte zieldatei,von_file_to_file
     SetStatusText(window,"Byte: "+a+"/"+groesse)
     SetGadgetText window,a+"/"+groesse
     xy# = xy# + Float(1)/groesse1#
     UpdateProgBar progbar,xy#
    Until Eof(von_datei)
    SetGadgetText window,"Goblin Secret Maker"
    CloseFile von_datei
    CloseFile zieldatei
    UpdateProgBar progbar,1.0
    Notify "Fertig" : Goto punkt


ja...

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, März 17, 2007 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
was mir spontan auffällt:

bei jedem Byte wird das Fenster geuppt, das wird Speedbremse NR1 sein

Code: [AUSKLAPPEN]
...
SetStatusText(window,"Byte: "+a+"/"+groesse)
SetGadgetText window,a+"/"+groesse
...
UpdateProgBar progbar,xy#
...


Hier noch meine Testversion...Code: [AUSKLAPPEN]
Name$="Unbenannt.bmp"
Time = MilliSecs()
;
Codieren (Name$,10)
;
DeCodieren ("cod_"+Name$,10)
;
time = MilliSecs()-Time
Print time
WaitKey

Function DeCodieren (Pfad1$,Wert%,Pfad2$="")
    Dat1% = ReadFile (Pfad1$)
    If Dat1 = 0 Then RuntimeError "Datei 1 Fehler"
    If Pfad2$="" Then Pfad2$="Decod_"+pfad1$
    Dat2% = WriteFile (Pfad2$)
    If Dat2 = 0 Then RuntimeError "Datei 2 Fehler"
   
    While Not Eof (Dat1%)
        Byte = ReadByte (Dat1%)
        WriteByte (Dat2%,(Byte+$100-Wert%) Mod $100)
    Wend
    CloseFile Dat1%
    CloseFile Dat2%
End Function
Function Codieren (Pfad1$,Wert%,Pfad2$="")
    Dat1% = ReadFile (Pfad1$)
    If Dat1 = 0 Then RuntimeError "Datei 1 Fehler"
    If Pfad2$="" Then Pfad2$="cod_"+pfad1$
    Dat2% = WriteFile (Pfad2$)
    If Dat2 = 0 Then RuntimeError "Datei 2 Fehler"
   
    While Not Eof (Dat1%)
        Byte = ReadByte (Dat1%)
        WriteByte (Dat2%,(Byte+Wert%) Mod $100)
    Wend
    CloseFile Dat1%
    CloseFile Dat2%
End Function
[BB2D | BB3D | BB+]
 

Goblin

Betreff: ?

BeitragSa, März 17, 2007 14:12
Antworten mit Zitat
Benutzer-Profile anzeigen
ich würde den fortschritt aber gerne in einem Ladebalken anzeigen. Geht dass auch noch anders?

Axe

BeitragSa, März 17, 2007 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
du musst die Aktualisierung ja nicht ebi jedem Byte machen. Alle Hundert oder tausend reicht.

Code: [AUSKLAPPEN]
if groesse Mod 100=0 then aktualisieren
Projekte:
Ping Pong 2D Version 2.1
Weitere Infos: axesite.de
 

Goblin

Betreff: ok

BeitragSa, März 17, 2007 15:07
Antworten mit Zitat
Benutzer-Profile anzeigen
ah ok dnake

StepTiger

BeitragSa, März 17, 2007 15:16
Antworten mit Zitat
Benutzer-Profile anzeigen
@Junk:
Du musst minus 256 machen, sonst würdest du byte 0 mit byte 255 gleichsetzen.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

Goblin

Betreff: juhu

BeitragSo, März 18, 2007 11:55
Antworten mit Zitat
Benutzer-Profile anzeigen
klappt zwar schon schneller aber 3mb/sec schaff ich au no ned
 

Goblin

Betreff: @Ralliman

BeitragSo, März 18, 2007 13:18
Antworten mit Zitat
Benutzer-Profile anzeigen
ich schff jetz 1mb/7sec wie hast du 3mb/sec geschfft?

hier mein code: vllt kann man ja noch was optimieren!Code: [AUSKLAPPEN]
Function DeCodieren(file$,key,window)
     zieldatei = WriteFile(file$+".gsm")
     von_datei = ReadFile(file$)
     groesse = FileSize(file$)
Repeat
     a = a+1
     von_file_to_file = ReadByte(von_datei)
     von_file_to_file = von_file_to_file + key
      If von_file_to_file > 255 Then von_file_to_file = von_file_to_file - 256
     WriteByte zieldatei,von_file_to_file
      If a = 1000000 Then b = b+1 : a = 0 : SetStatusText window,b+" mb"

     
Until Eof(von_datei)
End Function

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group