skrivning til fil og Kryptering

Tags:    visual-basic

<< < 12 > >>
Jeg er ved at lave et krypteringsprogram, men har et problem med at skrive til en fil. jeg bruger følgende kode:

Open Destination For Output As #1
For x = 0 To List1.ListCount - 1
Open List1.List(x) For Input As #2
Do While Not EOF(2)
data = Input(1, #2)
y = Asc(Split(data, "")(1)) + Asc(Split(Password, "")(1))
If y > 255 Then y = y - (255 - 32)
Print #1, Chr(y)
Print #1, Text
Loop
Close #2
Next
Close #1

men den laver et linieskift efter hvert bogstav den indsætter, hvad skal jeg gøre for at den skriver det lige efter hinanden uden gåseøjne, eller linieskift eller andre ting som kan genere???

derudover vil jeg høre om der er nogen som kender nogle gode forklarende bøger omkring DES (Data Encryption Standard), da jeg er ved at lave større skriftlig opgave i det, og helst på dansk.



Jeg er ved at lave et krypteringsprogram, men har et problem med at skrive til en fil. jeg bruger følgende kode:

Open Destination For Output As #1
For x = 0 To List1.ListCount - 1
Open List1.List(x) For Input As #2
Do While Not EOF(2)
data = Input(1, #2)
y = Asc(Split(data, "")(1)) + Asc(Split(Password, "")(1))
If y > 255 Then y = y - (255 - 32)
Print #1, Chr(y)
Print #1, Text
Loop
Close #2
Next
Close #1

men den laver et linieskift efter hvert bogstav den indsætter, hvad skal jeg gøre for at den skriver det lige efter hinanden uden gåseøjne, eller linieskift eller andre ting som kan genere???

derudover vil jeg høre om der er nogen som kender nogle gode forklarende bøger omkring DES (Data Encryption Standard), da jeg er ved at lave større skriftlig opgave i det, og helst på dansk.


Du kan ænre din kode til


Open Destination For Output As #1
For x = 0 To List1.ListCount - 1
Open List1.List(x) For Input As #2
Do While Not EOF(2)
data = Input(1, #2)
y = Asc(Split(data, "")(1)) + Asc(Split(Password, "")(1))
If y > 255 Then y = y - (255 - 32)
strVarC1==strVarC1 & chr(y)
strVarT1=strVarT1 & Text
Loop
Close #2
Print #1, strvarC1
Print #1, strvart1
Next
Close #1

har ikke lige teste det, men det burde virke.
eller pørv at flyte prin' en forbi next

-Thomas
-------------------------------------------------------
Visual Basic noget for dig?
tjek Visual Basic-Gruppen
http://www.udvikleren.dk/groups/?gid=41



ja... dette fungerer, men problemet er at den så læser hele fil2 ind i en variabel, og hvis fil2 er på f.eks. 7 gb så har man et problem det er derfor jeg godt vil have det lagt ned på disken med det samme.
Så hvis du har en metode til dette må du meget gerne komme med den.



Jeg er ved at lave et krypteringsprogram, men har et problem med at skrive til en fil. jeg bruger følgende kode:

Open Destination For Output As #1
For x = 0 To List1.ListCount - 1
Open List1.List(x) For Input As #2
Do While Not EOF(2)
data = Input(1, #2)
y = Asc(Split(data, "")(1)) + Asc(Split(Password, "")(1))
If y > 255 Then y = y - (255 - 32)
Print #1, Chr(y)
Print #1, Text
Loop
Close #2
Next
Close #1

men den laver et linieskift efter hvert bogstav den indsætter, hvad skal jeg gøre for at den skriver det lige efter hinanden uden gåseøjne, eller linieskift eller andre ting som kan genere???

derudover vil jeg høre om der er nogen som kender nogle gode forklarende bøger omkring DES (Data Encryption Standard), da jeg er ved at lave større skriftlig opgave i det, og helst på dansk.


så skriv og læs binært i stedet

Open Destination For binary As #1
For x = 0 To List1.ListCount - 1
Open List1.List(x) For binary As #2
for ytel=1 to lof(2) step 2
get #2,ytel,data
y = Asc(Split(data, "")(1)) + Asc(Split(Password, "")(1)) 'du skal muligvis ændre noget her
If y > 255 Then y = y - (255 - 32)
put #1,ytel,y
put #1,ytel+1,Text
Loop
Close #2
Next
Close #1


prøv noget i den stil

mvh.
Thomas
-------------------------------------------------------
Visual Basic noget for dig?
tjek Visual Basic-Gruppen
http://www.udvikleren.dk/groups/?gid=41



Get #2, 1, data 'her skriver den følgende fejl: Variable uses an OLE type not supported in Visual Basic (ps. jeg bruger VB 4.0 da det er den seneste jeg har)




Get #2, 1, data 'her skriver den følgende fejl: Variable uses an OLE type not supported in Visual Basic (ps. jeg bruger VB 4.0 da det er den seneste jeg har)


ok, tror at det at det noget med den måde dat er ærklære på?

prøv evt. Dim bytData as byte

Get #2, 1, bytData

ellers skriv igen, hvis det ikke er det.

-Thomas
-------------------------------------------------------
Visual Basic noget for dig?
tjek Visual Basic-Gruppen
http://www.udvikleren.dk/groups/?gid=41



tak det ser ud til at fungere indtil videre, men hvorfor beder du den om at steppe 2?
for ytel=1 to lof(2) step 2





tak det ser ud til at fungere indtil videre, men hvorfor beder du den om at steppe 2?
for ytel=1 to lof(2) step 2



fordi du udskrive 2 gange, nemlig både y og text og for at den ikke skal over skrive en byte, førjhøjver vi med 2

put #1,ytel,y
put #1,ytel+1,text ' her bruge jeg y med +1

-Thomas
-------------------------------------------------------
Visual Basic noget for dig?
tjek Visual Basic-Gruppen
http://www.udvikleren.dk/groups/?gid=41



hm... jeg har alligevel en stor fejl, fordi jeg har en fil der starter med B (66) og det forlænger jeg med ! (33) som skulle give c (99), og det skriver den også da jeg har fået den til at meddele mig hvad den skriver ind før den gør det som du kan se nedenunder. men når jeg åbner filen i notesblok står der en firkant og ikke et c (99)
(det som står i parantes er ascii-nøglen)

Open Destination For Binary As #1
For x = 0 To List1.ListCount - 1
Open List1.List(x) For Binary As #2
For ytel = 1 To LOF(2) Step 2
Get #2, ytel, bytdata
y = bytdata + Asc(Mid(Password, Nummer, 1))
If y > 255 Then y = y - (255 - 32)
MsgBox "Mid(Password, Nummer, 1): " & Mid(Password, Nummer, 1) & " Asc(Mid(Password, Nummer, 1)): " & Asc(Mid(Password, Nummer, 1)) & " bytdata: " & bytdata & " y: " & y & " chr(y): " & Chr(y)
Put #1, 1, Chr(y)
Nummer = Nummer + 1
If Nummer > NøgleLængde Then Nummer = 1
Next
Close #2
Next
Close #1

er fejlen den at notesblok ikke kan åbne den korrekt, eller er det min kode???
ps. jeg bruger ikke den der "tekst" mere.



hm... jeg har alligevel en stor fejl, fordi jeg har en fil der starter med B (66) og det forlænger jeg med ! (33) som skulle give c (99), og det skriver den også da jeg har fået den til at meddele mig hvad den skriver ind før den gør det som du kan se nedenunder. men når jeg åbner filen i notesblok står der en firkant og ikke et c (99)
(det som står i parantes er ascii-nøglen)

Open Destination For Binary As #1
For x = 0 To List1.ListCount - 1
Open List1.List(x) For Binary As #2
For ytel = 1 To LOF(2) Step 2
Get #2, ytel, bytdata
y = bytdata + Asc(Mid(Password, Nummer, 1))
If y > 255 Then y = y - (255 - 32)
MsgBox "Mid(Password, Nummer, 1): " & Mid(Password, Nummer, 1) & " Asc(Mid(Password, Nummer, 1)): " & Asc(Mid(Password, Nummer, 1)) & " bytdata: " & bytdata & " y: " & y & " chr(y): " & Chr(y)
Put #1, 1, Chr(y)
Nummer = Nummer + 1
If Nummer > NøgleLængde Then Nummer = 1
Next
Close #2
Next
Close #1

er fejlen den at notesblok ikke kan åbne den korrekt, eller er det min kode???
ps. jeg bruger ikke den der "tekst" mere.


Hvis du ikke bruge tekst, mere behøver du ikek step 2
men det er ikke nødvendig chr da det meget geren skul være binær

prøv i stedet med


Open Destination For Binary As #1
For x = 0 To List1.ListCount - 1
Open List1.List(x) For Binary As #2
For ytel = 1 To LOF(2) Step 2
Get #2, ytel, bytdata
y = bytdata + Asc(Mid(Password, Nummer, 1))
If y > 255 Then y = y - (255 - 32)
MsgBox "Mid(Password, Nummer, 1): " & Mid(Password, Nummer, 1) & " Asc(Mid(Password, Nummer, 1)): " & Asc(Mid(Password, Nummer, 1)) & " bytdata: " & bytdata & " y: " & y & " chr(y): " & Chr(y)
Put #1, 1, y
Nummer = Nummer + 1
If Nummer > NøgleLængde Then Nummer = 1
Next
Close #2
Next
Close #1

eller

evt.


Open Destination For Binary As #1
For x = 0 To List1.ListCount - 1
Open List1.List(x) For Binary As #2
For ytel = 1 To LOF(2)
Get #2, ytel, bytdata
y = bytdata + Asc(Mid(Password, Nummer, 1))
If y > 255 Then y = y - (255 - 32)
MsgBox "Mid(Password, Nummer, 1): " & Mid(Password, Nummer, 1) & " Asc(Mid(Password, Nummer, 1)): " & Asc(Mid(Password, Nummer, 1)) & " bytdata: " & bytdata & " y: " & y & " chr(y): " & Chr(y)
Put #1, 1, y
Nummer = Nummer + 1
If Nummer > NøgleLængde Then Nummer = 1
Next
Close #2
Next
Close #1


-Thomas
-------------------------------------------------------
Visual Basic noget for dig?
tjek Visual Basic-Gruppen
http://www.udvikleren.dk/groups/?gid=41



Nu giver den kun 2 outputs uanset om man bruger step 2 eller ej.
ps. filen den skal kryptere er på 6 bogstaver så den burde være længere.



<< < 12 > >>
t