Autor |
Beitrag |
newbie44
      
Beiträge: 117
Windows XP, Windows ME
D6 Pers, D7 Enterprise
|
Verfasst: Do 15.07.04 13:05
Hallo an alle Delphi-Fans,
habe ein Problem, habe bei einer Datei die Verschlüsselung geknackt und diese als Datei gespeichert in diesem Format:
a=1 und so weiter, wie bringe ich jetzt aber delphi dazu, die Datei zu öffnen, zu entschlüsseln und zu speichern, wenn ich dann einige Änderungen gemacht habe, will ich die Datei erneut verschlüsseln. Wie mache ich das am besten?
Ich wäre euch alle sehr dankbar.
Gruß
Sebby 
|
|
inselberg
      
Beiträge: 458
|
Verfasst: Do 15.07.04 13:27
a=1 als bytewert oder als ascii-zeichen '1'
bei einfachem ersetzen dürfte dir das - in ne schleife gepackt - weiterhelfen
_________________ hans bist du das ?
|
|
newbie44 
      
Beiträge: 117
Windows XP, Windows ME
D6 Pers, D7 Enterprise
|
Verfasst: Do 15.07.04 13:52
Also gut es soll natürlich hexadezial-verschlüsselt werden zum beispiel soll der Wert 01 aus hex in 43 umgewandelt werden. Das mit der Schleife hab ich mir auch schon überlegt, also folgendes, die Datei soll folgendermaßen aussehen.
Ich habe 3 Felder, im Feld 1 gibt der Benutzer ein 8 Zeichenlanges Wort ein, in das Zweitefeld gibt er entweder eine 1234567 ein. Dann im 3. Feld soll der Benutzer 1.56 oder irgendeinge Andere Kommazahl eingeben, nun folgendes Problem, wenn der Benutzer in Feld 1 auch Zahlen eingibt, dann sollen die zuerst verschlüsselt werden, Wenn er z. B. 21 eingibt, soll das in der Verschlüsselung halt ba heißen.
Aber wie mache ich das dann wenn nach dem Namen von Feld1 eine gewisse Anzahl von P's kommen. Hier mal die Datei leider nur Editormäßig:
Quelltext 1:
| >$9$<5$PPPPPPPPPPPP>$9$<5$PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP$=>$9$<~$71$;>$9$<~$71$;>$9$<b~$7SR5Pb]PPUTPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP |
Enschlüsselt sieht die Datei folgendermaßen aus:
Quelltext 1:
| Untitlet Untitlet tmUntitl~tgatkUntitl~tgatkUntitlb~tgSRe b] UT |
Doch ich hab keine Ahnung wie ich das mit Delphi schaffen soll, ich brauche dringed hilfe, hab fast noch keine Erfahrung bin ja erst ein neuer nutzer
Bitte helft mir
Gruß
Sebby
|
|
highhatcompy
      
Beiträge: 190
Win2000,Win XP,Linux(SuSE9.2)
Delphi 5 Prof.
|
Verfasst: Di 20.07.04 15:09
Hi,
welchen Zweck sollte eine solche Ver- und Entschlüsselung haben, und in welches Dateiformat willst Du es speichern (z.B. als BIN Datei ???)?
Highhatcompy
_________________ Bist Du ein Programmierer, so wirst Du gegen Computer, Hardwarehersteller und Anwender verlieren. (Quelle: Murphy's Computer-Gesetz)
|
|
newbie44 
      
Beiträge: 117
Windows XP, Windows ME
D6 Pers, D7 Enterprise
|
Verfasst: Di 20.07.04 17:05
highhatcompy hat folgendes geschrieben: | Hi,
welchen Zweck sollte eine solche Ver- und Entschlüsselung haben, und in welches Dateiformat willst Du es speichern (z.B. als BIN Datei ???)?
Highhatcompy |
Ich möchte damit eine Spieldatei neu Schreiben. Ja die Datei heißt Circuits.bin und ist für ein altes Rennspiel. Wäre für jede Hilfe sehr dankbar
Sebby 
|
|
highhatcompy
      
Beiträge: 190
Win2000,Win XP,Linux(SuSE9.2)
Delphi 5 Prof.
|
Verfasst: Di 20.07.04 17:31
Hallo,
das mit dem Spiel habe ich mir schon gedacht.
1. Das mit den viele 'p's habe ich noch nicht verstanden, haben die eine bestimmte Bedeutung,sind sie regelmäßig angeordnet oder hast Du keine Ahnung was sie bedeuten?
2. Welche Ausücke willst Du ändern und wieder schreiben(>$9$<~$71$  ?
3. Wie groß ist Deine BIN Datei?
Highhatcompy
_________________ Bist Du ein Programmierer, so wirst Du gegen Computer, Hardwarehersteller und Anwender verlieren. (Quelle: Murphy's Computer-Gesetz)
|
|
newbie44 
      
Beiträge: 117
Windows XP, Windows ME
D6 Pers, D7 Enterprise
|
Verfasst: Mi 21.07.04 11:23
highhatcompy hat folgendes geschrieben: | Hallo,
das mit dem Spiel habe ich mir schon gedacht.
1. Das mit den viele 'p's habe ich noch nicht verstanden, haben die eine bestimmte Bedeutung,sind sie regelmäßig angeordnet oder hast Du keine Ahnung was sie bedeuten?
2. Welche Ausücke willst Du ändern und wieder schreiben(>$9$<~$71$ ?
3. Wie groß ist Deine BIN Datei?
Highhatcompy |
Danke erstmal für deine Antwort, die P's sind sozusagen abstandshalter und haben keine Bedeutung sind aber trozdem wichtig. Genau ich möchte das Wort Untitled als (>$9$<~$71$  ? schreiben. Die P's kommen in regelmäßigen Abständen. Sind immer eine Gewisse Anzahl, bis zu einer bestimmten Adresse.
Die Datei ist genau 4.484 Bytes das sind ungefähr 4.37 kb.
Das doofe is nur ich bin newbie hab also nur grundkenntnisse.
Danke schon im Vorraus
Gruß
Sebby
|
|
highhatcompy
      
Beiträge: 190
Win2000,Win XP,Linux(SuSE9.2)
Delphi 5 Prof.
|
Verfasst: Mi 21.07.04 12:59
Hallo,
ok aber was möchtest Du jetzt eigentlich wissen? Wie du die Zeichen umwandelst, oder wie du die Datei ändern mußt?
Den Hex Wert ermittel ist recht einfach(siehe Delphi Hilfe oder mich).
Wenn du aber nicht weißt wie du in die Datei schreibst, da gibt es zwei Möglichkeiten:
1. Immer nur den Wert in der Datei ändern oder
2. die kommplette Datei neu schreiben!
Was willst Du?
Highhatcompy
_________________ Bist Du ein Programmierer, so wirst Du gegen Computer, Hardwarehersteller und Anwender verlieren. (Quelle: Murphy's Computer-Gesetz)
|
|
newbie44 
      
Beiträge: 117
Windows XP, Windows ME
D6 Pers, D7 Enterprise
|
Verfasst: Mi 21.07.04 15:49
highhatcompy hat folgendes geschrieben: | Hallo,
ok aber was möchtest Du jetzt eigentlich wissen? Wie du die Zeichen umwandelst, oder wie du die Datei ändern mußt?
Den Hex Wert ermittel ist recht einfach(siehe Delphi Hilfe oder mich).
Wenn du aber nicht weißt wie du in die Datei schreibst, da gibt es zwei Möglichkeiten:
1. Immer nur den Wert in der Datei ändern oder
2. die kommplette Datei neu schreiben!
Was willst Du?
Highhatcompy |
Ich will die Nummer 2 Machen. Die Datei beginnt immer mit den selben Hex-Werten, das sind 01 00 00, das ist sozusagen der Header, dann kommt der Streckenname verschlüsselt, dann kommen P's bis zur Adresse 0x0060 das ist genau position 57. Dann kommt auch immer der Selbe vorgang, das heißt, dann kommen 4 Zeichen die folgenden Hexwert haben: 23 3D 0F 00. Dann kommen genau 5 Buchstaben beim Streckennamen. Anschließend kommen folgende Hex-Werte: 7E 24 37 31 23 3B 0F 00. Danach kommen wieder 5 Buchstaben des Streckennamens und die vom vorhergehenden Satz genannten Hex-Werte. Danach wiederholt sich fast das ganze, hat eben nur einen Buchstaben weniger. 3F 3D 20 1F 15 0F 62 7E 24 37.Danach kommt noch folgende Behauptung: 53 52 3F 50 E4 44 50 50 55 52. Der Rest wird bis 0x1180 mit P's befüllt, wie formuliere ich das ganze?
Gruß
Sebby 
|
|
highhatcompy
      
Beiträge: 190
Win2000,Win XP,Linux(SuSE9.2)
Delphi 5 Prof.
|
Verfasst: Mi 21.07.04 17:28
Hi,
hier ist jetzt mal 'nen Codefetzen der deinen Header (10 00 00 Hex)in die BIN Datei schreibt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| ... var f:file; b: byte;
begin AssignFile(f,'C:\header.bin'); Rewrite(f,1); b:=$10; Blockwrite(f,b,sizeof(Byte)); b:=$00; Blockwrite(f,b,sizeof(Byte)); b:=$00; Blockwrite(f,b,sizeof(Byte)); CloseFile(f); end; ... |
genauso mußt du es mit den restlichen 4.481 Bytes machen  !
Du solltest das aber lieber noch etwas optimieren (Schleifen und größere Böcke schreiben oder so)!
Highhatcompy
Moderiert von Peter Lustig: Code- durch Delphi-Tags ersetzt.
_________________ Bist Du ein Programmierer, so wirst Du gegen Computer, Hardwarehersteller und Anwender verlieren. (Quelle: Murphy's Computer-Gesetz)
|
|
newbie44 
      
Beiträge: 117
Windows XP, Windows ME
D6 Pers, D7 Enterprise
|
Verfasst: Mi 21.07.04 17:38
Hi,
danke erstmal, für den Codefetzten, es ist ja gar nicht so schwer wie ich immer dachte, wie teile Ich Ihm aber jetzt, die verschlüsselung mit, wenn der Streckenname z. B. Untitled oder Megapol heißt?. Ich habe ein Feld, das Strecke heißt, ich muss Ihn das nur irgendwie sagen, das er eben das was da drin steht mit meiner Entschlüsselungsliste umsetzt. Das ist vielleicht ne Frage.
Wie schon gesagt sieht meine Liste so aus
a=1
b=2
c=3
d=4
e=5
f=6
g=7
h=8
usw.
Bitte helfe mir nochmal weiter, das ist für mich wie ein Rätsel.
Gruß
Sebby 
|
|
highhatcompy
      
Beiträge: 190
Win2000,Win XP,Linux(SuSE9.2)
Delphi 5 Prof.
|
Verfasst: Mi 21.07.04 18:47
Da hast du recht  !
Megapol würde also 13,5,7,1,16,15,12 heißen, und in Hex 0d,05,07,01,10,0f,0c ???
Ist das so richtig? Wenn ja würde ich ein Array einrichten in dem alle Buchstaben von a-z passen und über eine Schleife den String dekodieren lassen. Z.B. so:
Delphi-Quelltext 1: 2:
| ... var buchstaben: array [0..25] of char =('a','b','c', | das geht dann so weiter bis Delphi-Quelltext
und dann decodest du alle Buchstaben deines Strings(z.B. Megapol) in einer Schleife, etwa so:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| ... var l,z1,z2: integer; s: string; ausgabe: array [0..6] of byte;
begin s:='Megapol'; l:=length(s); for z1:=1 to l do begin for z2:=0 to 25 do begin if buchstaben[z2]=copy(s,1,z) then ausgabe[z1]:=z2; end; end; end; ... |
Du hast dan in dem Array das decodierte Wort stehen und musst es nur nuch in Hexwert umwandel(auch wieder in einer Schleife)!
P.S. Habe den Code aus dem Kopf geschreiben, wenn was nicht funkt schreibe nochmal und ich teste es auf meinen Rechner!
Moderiert von Peter Lustig: Code- durch Delphi-Tags ersetzt.
_________________ Bist Du ein Programmierer, so wirst Du gegen Computer, Hardwarehersteller und Anwender verlieren. (Quelle: Murphy's Computer-Gesetz)
|
|
newbie44 
      
Beiträge: 117
Windows XP, Windows ME
D6 Pers, D7 Enterprise
|
Verfasst: Do 22.07.04 09:28
Danke, werde es später testen, muss dir nur leider mitteilen, das die Verschlüsselung doch etwas anders aussieht, die kleinen normalen Buchstaben gehen nur bis i
also von a-1 = 1-9
Danach geht es folgendermaßen weiter.
j=:
k=;
l=<
m==
n=>
o=?
p=hexwert 20
q weiß ich noch nicht denke aber 21
r="
s=#
t=$
u=%
v=&
w='
x=(
y=)
z=*
Dann die Großbuchstaben (in Hexwerten)
A=11
B=12
C=13
D=14
E=15
F=16
G=17
H=18
I=19
J=1A
K=1B
L=1C
M=1D
N=1E
O=1F
P=00
Q=01
R=02
S=03
T=04
U=05
V=06
W=07
X=08
Y=09
Z=10
So das ist der entschlüsselungscode, ich glaube nicht das man das einfach in eine liste schreiben kann. Ach ja nochwas beim Entschlüsseln werden erst die Nummern entschlüsselt das heißt wenn ab da steht ist das halt die 12.
Bitte helf mir weiter, habe keine Ahnung wie ich das in Delphi formulieren soll, aber danke schon für die Anregungen, sie sind echt gut.
Du sprachst von Schleifen, wie baue ich diese ein?. Es gibt da noch ein Problem mit den P's Wenn der eingegebene name kürzer als 8 Buchstaben ist, dann sollen für die restlichen P's eingefügt werden. Wie formuliert man Hexadressen in Delphi, denn die P's hören ja an einer ganz besonderen Stelle wieder auf.
Gruß
Sebby 
|
|
highhatcompy
      
Beiträge: 190
Win2000,Win XP,Linux(SuSE9.2)
Delphi 5 Prof.
|
Verfasst: Do 22.07.04 14:26
Hi,
das mit dem decoden ist kein Problem. Du erstellst einfach zwei Arrays, dass erste so wie ich es dir gezeigt habe(du musst nur die Anzahl der Felder ändern (anzahl der benötigten Zeichen)) und das zweite etwa so:
Delphi-Quelltext 1:
| Var hexarray: array [0..25] of string = ('1','2',...'10'); |
In dem wird der Integerwert der Hexwertes als string geschrieben. Beide Arrays sollten gleich groß sein! Dan suchst du im ersten Array das gewünschte Zeichen und im zweiten steht an der gleichen stelle das decodierte zeichen.
Die werte brauchst du nicht in Hex umwandel schreib sie als integer in die Datei, statt Delphi-Quelltext
einfach
Delphi-Quelltext 1: 2: 3:
| ... b:=stringtoint(hexarray[0]); ... |
Das mit dem Nummern entschlüssel musst du mir noch mal erklären, aber langsam!!!
Die Schleifen sind Delphiurschleim nimm dir ein Buch und liess es nach oder Delphihilfe oder Suchfunktion im Forum!
Moderiert von Peter Lustig: Code- durch Delphi-Tags ersetzt.
_________________ Bist Du ein Programmierer, so wirst Du gegen Computer, Hardwarehersteller und Anwender verlieren. (Quelle: Murphy's Computer-Gesetz)
|
|
newbie44 
      
Beiträge: 117
Windows XP, Windows ME
D6 Pers, D7 Enterprise
|
Verfasst: Do 22.07.04 15:24
Danke für die Antwort,
ich habe jetzt das ganze schon mal mit delphi ausprobiert, das mit dem header-schreiben geht ja schon gut, habe es schon probiert,
doch leider verstehe ich das mit den Listen überhaupt nicht. Wie ich das verstanden habe, soll ich eine Liste mit den normalen Buchstaben machen etwa so oder (a, b, c, ..., g, h, z) und dann soll ich eine andere liste erstellen die die verschlüsselung enthält nicht war (1,2,3...,8,9)
Wo soll ich dann aber platzieren, wohl auch bei beginn oder.
Was nun die Zahlen betrifft, stell dir vor du möchtest in den Streckennamen eine 44 einbauen. Die Zahl würde dann verschlüsselt doch "dd" heißen, is es nicht so, ja natürlich, ist die selbe verschlüsselung eben nur anders rum
Danke schon im Vorraus.
Gruß
Sebby 
|
|
highhatcompy
      
Beiträge: 190
Win2000,Win XP,Linux(SuSE9.2)
Delphi 5 Prof.
|
Verfasst: Do 22.07.04 15:53
Ja,
genau so habe ich das gemeint! Jedes Zeichen aus der ersten Liste, entspricht dem entsprechenden String aus der zweiten Liste. In der ersten Liste sind alle benötigten Zeichen,Buchstaben und Zahlen in der Reihenfolge wie du willst, du must dann die verschl. werte der zweiten Liste in der selben Reihenfolge angeben!
Die arrays solltest du nach Delphi-Quelltext
und vor Delphi-Quelltext
einbauen! Das war doch deine Frage  ?
Und das mit dem Streckennamen ist so gemeint: Dei Strecke heisst Megapol44, aber wenn du sie codieren möchtest muss sie 44Megapol heissen ?????
Bis bald!
_________________ Bist Du ein Programmierer, so wirst Du gegen Computer, Hardwarehersteller und Anwender verlieren. (Quelle: Murphy's Computer-Gesetz)
|
|
newbie44 
      
Beiträge: 117
Windows XP, Windows ME
D6 Pers, D7 Enterprise
|
Verfasst: Do 22.07.04 16:00
highhatcompy hat folgendes geschrieben: | Und das mit dem Streckennamen ist so gemeint: Dei Strecke heisst Megapol44, aber wenn du sie codieren möchtest muss sie 44Megapol heissen ?????
Bis bald! |
Nein, da hast du mich falsch verstanden, wenn der streckenname abcd21 heißt, dann sieht er doch kodiert folgendermaßen aus 1234ba. Wenn buchstaben eingegeben werden, müssen diese anders rum kodiert werden, das heißt also nicht nach a-->1 sondern eben 1-->a
Hast du das verstanden ?
Aber jetzt zu den Listen gut, ich habe verstanden wo ich diese hinbauen soll, wenn der Benutzer nichts in das Feld eingegeben hat, dann soll eine Fehlermeldung kommen "Bitte etwas in das Feld namen eintragen". Nächstes Problem, wie spreche ich den Inhalt des Feldes an und codiere ihn sofort, wie du das im 2. Beitrag gemeint hast?
Danke schon im Vorraus für die Tipps und danke das dir Zeit für mich nimmst
Gruß
Sebby 
|
|
highhatcompy
      
Beiträge: 190
Win2000,Win XP,Linux(SuSE9.2)
Delphi 5 Prof.
|
Verfasst: Do 22.07.04 16:30
Hallo,
na so richtig verstehe ich das noch nicht, aber wenn du weißt wie es decodiert wird, dann musst du die beiden listen so anpassen das es funkt.!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| ... var l,z1,z2: integer; s: string; ausgabe: array [0..2] of byte; const buchstaben: array[0..2] of char = ('a','b','c'); hexwerte: array[0..2] of string = ('1','2','3'); begin s:='cba'; l:=length(s); for z1:=1 to l do begin for z2:=0 to 2 do begin if buchstaben[z2]=copy(s,1,z) then showmessage('Vorher: '+buchstaben[z2]+' -> nachher: '+hexwerte[z2]; end; end; end; |
Probiers mal!
_________________ Bist Du ein Programmierer, so wirst Du gegen Computer, Hardwarehersteller und Anwender verlieren. (Quelle: Murphy's Computer-Gesetz)
|
|
newbie44 
      
Beiträge: 117
Windows XP, Windows ME
D6 Pers, D7 Enterprise
|
Verfasst: Do 22.07.04 17:14
Hi,
gut habe es probiert sind aber ziemlich viele Errors, hier eine liste:
Undefinierter Bezeichner Z
For-schleife muss eine lokale variable sein.
Bitte verbessere das, ich bin ein newbie hab davon überhaupt keine Ahnung
Gruß
Sebby 
|
|
highhatcompy
      
Beiträge: 190
Win2000,Win XP,Linux(SuSE9.2)
Delphi 5 Prof.
|
Verfasst: Do 22.07.04 17:19
Hi,
das z muß z1 heissen!!
_________________ Bist Du ein Programmierer, so wirst Du gegen Computer, Hardwarehersteller und Anwender verlieren. (Quelle: Murphy's Computer-Gesetz)
|
|
|