![]() |
Hilfe bei ascii dualsystem
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo liebe Leute ich bin mal wieder auf eure Hilfe angewiesen. Ich habe ein Projekt angefangen und würde gerne normale Wörter in Ascii codes umwandeln und anschliesend im Dualsystem anzeigen lassen. Dies soll auch alles andersrum gehen;) Ich habs bis jetzt hingekriegt das ich Texte in Ascii umwandeln kann und ascii im Dual (leider wird das auf mysterioser nicht angezeigt) der rest is noch nicht programmiert doch schon bisschen schauts euch einfach an ;) wäre super toll wenn ihr mir helfen würdert
|
Re: Hilfe bei ascii dualsystem
Hi!
Wo geau hängt es denn? Was funktioniert nicht? Gibt es Fehlermeldungen? Vllt. kannst du es auf einzelne Prozeduren eingrenzen (dann bitte deren Code posten)... Ciao, Frederic |
Re: Hilfe bei ascii dualsystem
Hallo Gaui,
Habe mir dein Projekt mal geladen und angesehen, wo genau leigt Dein Problem. MFG Jens |
Re: Hilfe bei ascii dualsystem
Habe mal eine bißchen im Forum gesucht,
Schau dir mal diesen lang an, ![]() Müsste eventuell für dich von Intresse sein. MFG Jens |
Re: Hilfe bei ascii dualsystem
also der erste fehler liegt darin das
Delphi-Quellcode:
wenn ich F9 drücke wird der debugger nicht aktiviert weil der nicht inttostr kennt. Ich könnte zwar eure lösungsvorschläge nehmen aber ich schreibe eine Facharbeit über bild steganografie und muss das selbst machen ;) also wäre cool wenn ihr mir mit meinem helfen könntet
//-------- AsciitoDual (public) ----------------------------------------
function TAsciiControl.AsciitoDual (pAscii: integer) : string; var lWert,lZwischenwert :integer;lendwert,lErgebnis :string; begin lWert:= pAscii; // der Wert aus pAscii wird lWert zugewiesen repeat lzwischenwert:= lwert mod 2; // teilen mit rest, Ergebnis wird in einer lokalen Variable gespeichert lendwert:= inttostr(lzwischenwert); // lzwischenwert wird in einen integer verwandelt insert(lendwert,lErgebnis,1); // lendwert wird an der ersten stelle des strings lergebnis eingefügt, da der Dualwert von hinten gelesen werden muss until lwert mod 2 <= 1 ; // dies wird solange wiederholt bis lwert durch 2 geteilt wird und als rest entweder 1 oder 0 raus kommt result := lErgebnis end; |
Re: Hilfe bei ascii dualsystem
schau mal in der Hilfe nach in welcher Unit bei delphi5 IntToStr definiert ist. bei TurboDelphi ist es in SysUtils, die bei einem neuen projekt automatisch in dies uses aufgenommen wird.
Evtl. liegt es bei D5 ja wo anders, bzw. bindet die SysUtils nicht automatisch ein. Gruß tr909 |
Re: Hilfe bei ascii dualsystem
ne also bei einem anderen Fall klappt es ja nur hier ich nicht is sehr seltsam ;)
|
Re: Hilfe bei ascii dualsystem
Ich fang mal mit dem ersten Problem an:
Delphi-Quellcode:
so hier zeigt er in der der Zeile
procedure TForm1.Button1Click (Sender: TObject);
var lText,lAsciiErgebnis,lDualergebnis,laktuellerBuchstabe, lAsciizwischenWert,lDualzwischenwert :string; z,lwert : integer; begin lText:= mText.text ; for z:=1 to length (lText) do begin //Ascii umwandeln laktuellerBuchstabe:= lText[z]; //z-ter Buchstabe aus dem gesamten Text lAsciizwischenwert:=hatAsciiControl.TexttoAscii(lAktuellerBuchstabe); // z-ter Buchstabe wird in Ascii umgewandelt lAsciiErgebnis:= lAsciiErgebnis + lAsciizwischenwert; // zusammenfassen der Ergebnisse bis z die Länge des Textes erreicht lWert:= strtoint(lAsciizwischenwert); // z-ter Buchstabe der ein Asciiwert also string in integer geändert lDualzwischenwert:=inttostr(hatAsciiControl.AsciitoDual(lWert)); // // z-ter Buchstabe aus Ascii wird in Dual geändert mDual.text:=(lDualzwischenwert); // Dualsystemwert wird dem memofeld zugewiesen mDual.text:='#'; end; mascii.text:= lAsciiErgebnis; // Asciicode wird dem Memofeld zugewiesen end;
Delphi-Quellcode:
den fehler
lDualzwischenwert:=inttostr(hatAsciiControl.AsciitoDual(lWert)); // // z-ter Buchstabe aus Ascii wird in Dual geändert
Delphi-Quellcode:
die methode AsciitoDual sieht dann so aus
[Fehler] ASCII.pas(63): Es gibt keine überladene Version von 'IntToStr', die man mit diesen Argumenten aufrufen kann
Delphi-Quellcode:
leider kann ich das aufgrund des vorrangehenden fehlers nicht uberprüfen
function TAsciiControl.AsciitoDual (pAscii: integer) : string;
var lWert,lZwischenwert :integer;lendwert,lErgebnis :string; begin lWert:= pAscii; // der Wert aus pAscii wird lWert zugewiesen repeat lzwischenwert:= lwert mod 2; // teilen mit rest, Ergebnis wird in einer lokalen Variable gespeichert // lendwert:= inttostr(lzwischenwert); // lzwischenwert wird in einen integer verwandelt insert(lendwert,lErgebnis,1); // lendwert wird an der ersten stelle des strings lergebnis eingefügt, da der Dualwert von hinten gelesen werden muss until lwert mod 2 <= 1 ; // dies wird solange wiederholt bis lwert durch 2 geteilt wird und als rest entweder 1 oder 0 raus kommt result := lErgebnis end; habt ihr ne idee??? |
Re: Hilfe bei ascii dualsystem
Delphi-Quellcode:
.. dann überlege einmal was für einen RückgabeTyp Deine Funktion AsciiToDual hat.
lDualzwischenwert:=inttostr(hatAsciiControl.AsciitoDual(lWert)); // // z-ter Buchstabe aus Ascii wird in Dual geändert
.. und muß man diese noch von Integer nach String wandeln? Grüße Klaus |
Re: Hilfe bei ascii dualsystem
Habe mal dein Programm getestet und bekomme es ans laufen.
Du solltest mal folgende uses Anweisung dir anschauen:
Delphi-Quellcode:
In deinem Unit fehlt die uses Anweisung ganz.
UNIT mTAsciiControl;
interface //-------------------- ggf Uses-Liste einfügen ! -------------------- uses Windows, SysUtils; MFG Jens |
Re: Hilfe bei ascii dualsystem
oke.
|
Re: Hilfe bei ascii dualsystem
Liste der Anhänge anzeigen (Anzahl: 1)
hmm das mit den uses hab ich fertig nur das das mit dem
Delphi-Quellcode:
versteh ich nicht der Rückgabewert ist ein string und gefordert ist ein integer. lDualzwischenwert ist doch ein string also :wiejetzt: kannst du mir das erklären? und hast du es den soweit am laufen das alles funktioniert oder nur die Methode ? Ich hab jetzt den Rückgabetyp nicht verändert da er ein string is ;) aber ich krieg eine fehlermeldung, dass die Zahl die ich in einen integer verwandeln will kein gültiger integer ist. Ich lad das mal hoch damit ihr auch mein aktuelles problem habt :)
lDualzwischenwert:=inttostr(hatAsciiControl.AsciitoDual(lwert));
|
Re: Hilfe bei ascii dualsystem
Delphi-Quellcode:
Du hast StrToInt mit IntToStr vertauscht.
lDualzwischenwert := StrToInt( hatAsciiControl.AsciitoDual(lwert) );
// In Integer schreibe := KonvertiereStringZuInteger( String ); (Ist mir zuerst auch oft passiert*) :wink: Edit: Oh, ich seh grad lDualzwischenwert ist schon ein String. In dem fall brauchst du gar nicht Konvertieren*, da AsciitoDual schon einen String zurückgibt.
Delphi-Quellcode:
:stupid:
lDualzwischenwert := hatAsciiControl.AsciitoDual(lwert);
// In String schreibe := String ; |
Re: Hilfe bei ascii dualsystem
Liste der Anhänge anzeigen (Anzahl: 1)
hm trotzdem kommt da dann ein fehler ;) erst soll ja in ascii umgewandelt werden und dann in dual und von ascii nach dual kommt es zum problem. Er sacht z.b. wenn ich h als text eingebe, dass 104 kein integral wert ist. Stimmt ja auch weil es ein string is. aber wo muss ich das ändern??
|
Re: Hilfe bei ascii dualsystem
Umwandlungsroutienen:
IntToStr; wandelt eine Ganzzahl (Integer) in einen String StrToInt; wandelt einen String (eine Zahl die als text dargestellt wird) in eine Ganzzahl um ord(c); liefert den Ordinalwert eines Zeichens (char; Buchstabe) Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz