AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi fehler bei glkGereons baseToBase unit
Thema durchsuchen
Ansicht
Themen-Optionen

fehler bei glkGereons baseToBase unit

Ein Thema von retnyg · begonnen am 11. Mai 2005 · letzter Beitrag vom 16. Mai 2005
Thema geschlossen
Benutzerbild von retnyg
retnyg

Registriert seit: 12. Feb 2005
193 Beiträge
 
#1

fehler bei glkGereons baseToBase unit

  Alt 11. Mai 2005, 20:15
wollte gestern mal eine liste mit in binär codierten zahlen erzeugen.
und habe dafür glkgereon's code hergenommen, was nicht funktioniert.
test-szenario:
Delphi-Quellcode:
uses ..., ubasetobase;

function mathop(z1,z2:dword;op:dword):dword;
begin
  case op of
      0 : result := z1 and z2;
      1 : result := z1 or z2;
      2 : result := z1 xor z2;
      3 : result := z1 shr z2;
      4 : result := z1 shl z2;
  else result := 0
  end;
end;

function dw2system(d,base:dword;strlen:byte):string;
// converts d in a system based on base
// like dw2system(255,2,8) = '11111111'
// or dw2system(255,16,2) = 'FF'
// by retnyg
const cypher = '0123456789ABCDEF';
var i : dword;
begin
   setlength(result,strlen);
   fillchar(pointer(result)^,strlen,48);
   while (d > 0) and (strlen > 0) do begin
     i := d mod base;
     result[strlen] := cypher[i+1];
     dec(d,i);
     dec(strlen);
     d:=d div base;
   end;
end;

function dectobin(z:dword):string;
var s: string;l:dword;
begin
 result := dw2system(z,2,8); // my code - works
// result:= dectobase(z,2); // glkgereon's code - not work
end;

function outstr(n:dword):string;
begin
   result :=dectobin(n);
   result:=inttostr(n)+':'+result;
end;

procedure TForm1.Button4Click(Sender: TObject);
const ca=';';
var i,j,z2 : integer;
append: boolean;
s:string;
f:textfile;

begin
  z2:=7;
  append := false;
  assignfile(f,'out.csv');
  rewrite(f);
  writeln(f,'number1;number2;AND;OR;XOR;SHR;SHL');
  for i := 0 to 255 do begin
    s := outstr(i) + ca + outstr(z2);
    for j := 0 to 4 do s := s + ca + outstr(mathop(i,z2,j));
    writeln(f,s);
  end;
  closefile(f);
  sendmessage(handle,wm_close,0,0);
end;
output der unit UbaseToBase [falsch] [edit=alcaeus](siehe Anhang)[/edit]

output meines codes [richtig]:
Code:
   number1;number2;AND;OR;XOR;SHR;SHL
0:00000000;7:00000111;0:00000000;7:00000111;7:00000111;0:00000000;0:00000000
1:00000001;7:00000111;1:00000001;7:00000111;6:00000110;0:00000000;128:10000000
2:00000010;7:00000111;2:00000010;7:00000111;5:00000101;0:00000000;256:00000000
3:00000011;7:00000111;3:00000011;7:00000111;4:00000100;0:00000000;384:10000000
4:00000100;7:00000111;4:00000100;7:00000111;3:00000011;0:00000000;512:00000000
5:00000101;7:00000111;5:00000101;7:00000111;2:00000010;0:00000000;640:10000000
6:00000110;7:00000111;6:00000110;7:00000111;1:00000001;0:00000000;768:00000000
7:00000111;7:00000111;7:00000111;7:00000111;0:00000000;0:00000000;896:10000000
8:00001000;7:00000111;0:00000000;15:00001111;15:00001111;0:00000000;1024:00000000
9:00001001;7:00000111;1:00000001;15:00001111;14:00001110;0:00000000;1152:10000000
10:00001010;7:00000111;2:00000010;15:00001111;13:00001101;0:00000000;1280:00000000
11:00001011;7:00000111;3:00000011;15:00001111;12:00001100;0:00000000;1408:10000000
12:00001100;7:00000111;4:00000100;15:00001111;11:00001011;0:00000000;1536:00000000
13:00001101;7:00000111;5:00000101;15:00001111;10:00001010;0:00000000;1664:10000000
14:00001110;7:00000111;6:00000110;15:00001111;9:00001001;0:00000000;1792:00000000
15:00001111;7:00000111;7:00000111;15:00001111;8:00001000;0:00000000;1920:10000000
16:00010000;7:00000111;0:00000000;23:00010111;23:00010111;0:00000000;2048:00000000
17:00010001;7:00000111;1:00000001;23:00010111;22:00010110;0:00000000;2176:10000000
18:00010010;7:00000111;2:00000010;23:00010111;21:00010101;0:00000000;2304:00000000
19:00010011;7:00000111;3:00000011;23:00010111;20:00010100;0:00000000;2432:10000000
20:00010100;7:00000111;4:00000100;23:00010111;19:00010011;0:00000000;2560:00000000
21:00010101;7:00000111;5:00000101;23:00010111;18:00010010;0:00000000;2688:10000000
22:00010110;7:00000111;6:00000110;23:00010111;17:00010001;0:00000000;2816:00000000
23:00010111;7:00000111;7:00000111;23:00010111;16:00010000;0:00000000;2944:10000000
24:00011000;7:00000111;0:00000000;31:00011111;31:00011111;0:00000000;3072:00000000
25:00011001;7:00000111;1:00000001;31:00011111;30:00011110;0:00000000;3200:10000000
26:00011010;7:00000111;2:00000010;31:00011111;29:00011101;0:00000000;3328:00000000
27:00011011;7:00000111;3:00000011;31:00011111;28:00011100;0:00000000;3456:10000000
28:00011100;7:00000111;4:00000100;31:00011111;27:00011011;0:00000000;3584:00000000
29:00011101;7:00000111;5:00000101;31:00011111;26:00011010;0:00000000;3712:10000000
30:00011110;7:00000111;6:00000110;31:00011111;25:00011001;0:00000000;3840:00000000
31:00011111;7:00000111;7:00000111;31:00011111;24:00011000;0:00000000;3968:10000000
32:00100000;7:00000111;0:00000000;39:00100111;39:00100111;0:00000000;4096:00000000
33:00100001;7:00000111;1:00000001;39:00100111;38:00100110;0:00000000;4224:10000000
34:00100010;7:00000111;2:00000010;39:00100111;37:00100101;0:00000000;4352:00000000
35:00100011;7:00000111;3:00000011;39:00100111;36:00100100;0:00000000;4480:10000000
36:00100100;7:00000111;4:00000100;39:00100111;35:00100011;0:00000000;4608:00000000
37:00100101;7:00000111;5:00000101;39:00100111;34:00100010;0:00000000;4736:10000000
38:00100110;7:00000111;6:00000110;39:00100111;33:00100001;0:00000000;4864:00000000
39:00100111;7:00000111;7:00000111;39:00100111;32:00100000;0:00000000;4992:10000000
40:00101000;7:00000111;0:00000000;47:00101111;47:00101111;0:00000000;5120:00000000
41:00101001;7:00000111;1:00000001;47:00101111;46:00101110;0:00000000;5248:10000000
42:00101010;7:00000111;2:00000010;47:00101111;45:00101101;0:00000000;5376:00000000
43:00101011;7:00000111;3:00000011;47:00101111;44:00101100;0:00000000;5504:10000000
44:00101100;7:00000111;4:00000100;47:00101111;43:00101011;0:00000000;5632:00000000
45:00101101;7:00000111;5:00000101;47:00101111;42:00101010;0:00000000;5760:10000000
46:00101110;7:00000111;6:00000110;47:00101111;41:00101001;0:00000000;5888:00000000
47:00101111;7:00000111;7:00000111;47:00101111;40:00101000;0:00000000;6016:10000000
48:00110000;7:00000111;0:00000000;55:00110111;55:00110111;0:00000000;6144:00000000
49:00110001;7:00000111;1:00000001;55:00110111;54:00110110;0:00000000;6272:10000000
50:00110010;7:00000111;2:00000010;55:00110111;53:00110101;0:00000000;6400:00000000
51:00110011;7:00000111;3:00000011;55:00110111;52:00110100;0:00000000;6528:10000000
52:00110100;7:00000111;4:00000100;55:00110111;51:00110011;0:00000000;6656:00000000
53:00110101;7:00000111;5:00000101;55:00110111;50:00110010;0:00000000;6784:10000000
54:00110110;7:00000111;6:00000110;55:00110111;49:00110001;0:00000000;6912:00000000
55:00110111;7:00000111;7:00000111;55:00110111;48:00110000;0:00000000;7040:10000000
56:00111000;7:00000111;0:00000000;63:00111111;63:00111111;0:00000000;7168:00000000
57:00111001;7:00000111;1:00000001;63:00111111;62:00111110;0:00000000;7296:10000000
58:00111010;7:00000111;2:00000010;63:00111111;61:00111101;0:00000000;7424:00000000
59:00111011;7:00000111;3:00000011;63:00111111;60:00111100;0:00000000;7552:10000000
60:00111100;7:00000111;4:00000100;63:00111111;59:00111011;0:00000000;7680:00000000
61:00111101;7:00000111;5:00000101;63:00111111;58:00111010;0:00000000;7808:10000000
62:00111110;7:00000111;6:00000110;63:00111111;57:00111001;0:00000000;7936:00000000
63:00111111;7:00000111;7:00000111;63:00111111;56:00111000;0:00000000;8064:10000000
64:01000000;7:00000111;0:00000000;71:01000111;71:01000111;0:00000000;8192:00000000
65:01000001;7:00000111;1:00000001;71:01000111;70:01000110;0:00000000;8320:10000000
66:01000010;7:00000111;2:00000010;71:01000111;69:01000101;0:00000000;8448:00000000
67:01000011;7:00000111;3:00000011;71:01000111;68:01000100;0:00000000;8576:10000000
68:01000100;7:00000111;4:00000100;71:01000111;67:01000011;0:00000000;8704:00000000
69:01000101;7:00000111;5:00000101;71:01000111;66:01000010;0:00000000;8832:10000000
70:01000110;7:00000111;6:00000110;71:01000111;65:01000001;0:00000000;8960:00000000
71:01000111;7:00000111;7:00000111;71:01000111;64:01000000;0:00000000;9088:10000000
72:01001000;7:00000111;0:00000000;79:01001111;79:01001111;0:00000000;9216:00000000
73:01001001;7:00000111;1:00000001;79:01001111;78:01001110;0:00000000;9344:10000000
74:01001010;7:00000111;2:00000010;79:01001111;77:01001101;0:00000000;9472:00000000
75:01001011;7:00000111;3:00000011;79:01001111;76:01001100;0:00000000;9600:10000000
76:01001100;7:00000111;4:00000100;79:01001111;75:01001011;0:00000000;9728:00000000
77:01001101;7:00000111;5:00000101;79:01001111;74:01001010;0:00000000;9856:10000000
78:01001110;7:00000111;6:00000110;79:01001111;73:01001001;0:00000000;9984:00000000
79:01001111;7:00000111;7:00000111;79:01001111;72:01001000;0:00000000;10112:10000000
80:01010000;7:00000111;0:00000000;87:01010111;87:01010111;0:00000000;10240:00000000
81:01010001;7:00000111;1:00000001;87:01010111;86:01010110;0:00000000;10368:10000000
82:01010010;7:00000111;2:00000010;87:01010111;85:01010101;0:00000000;10496:00000000
83:01010011;7:00000111;3:00000011;87:01010111;84:01010100;0:00000000;10624:10000000
... usw
@admin : diesmal bitte ned wieder reinpfuschen

[edit=alcaeus]Auch wenn der Beitrag nicht so oft gelesen wird, hab ich mal den falschen Output als Anhang eingefuegt. Die Scrollbars waren gewaltig Mfg, alcaeus[/edit]
Angehängte Dateien
Dateityp: txt ubasetobase_output_falsch_315.txt (15,6 KB, 5x aufgerufen)
 
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#2

Re: fehler bei glkGereons baseToBase unit

  Alt 16. Mai 2005, 13:39
also, du meinst der weg Dec2Bin funzt nicht richtig?

kann ich kaum glauben, muss ich erstmal nachprüfen....

*Schluck*
sch** was hab ich denn da gemacht???

also er hat völlig recht, mein code erzeugt völligen schwachfug...werds ausbessern....hoffentlich
»Unlösbare Probleme sind in der Regel schwierig...«
 
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#3

Re: fehler bei glkGereons baseToBase unit

  Alt 16. Mai 2005, 14:20
Ich hab den Fehler!!!

meine procedure GetChar ist sollte zwar richtig sein, gibt aber offensichtlich falsche werte zurück....ist Ascii/Ansii auf manchen maschinen anders implementiert?

wobei das nicht der einzige fehler ist...

??????
der behält das vorherige Result im Speicher.

mit einem Result:='' vor der Schleife in DecToBase funzt es.

IST DER DUMM????

Edit:
Im Anhang die korrigierte Fassung...

@Chakotay1308:
Bitte in meinen UrsprungsPost rein, ich kanns ja nicht mehr...thx
Angehängte Dateien
Dateityp: pas ubase2base_564.pas (1,5 KB, 4x aufgerufen)
Dateityp: rar basetobase_902.rar (178,9 KB, 4x aufgerufen)
»Unlösbare Probleme sind in der Regel schwierig...«
 
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: fehler bei glkGereons baseToBase unit

  Alt 16. Mai 2005, 15:51
Hi,
okay, habe die Anhänge geupdatet. Deine Änderung ist nun also auch in der Code-Library vorhanden. Ich habe aber keine weitere Anmerkung dazu geschrieben.

Ich schließe den Beitrag damit und verschiebe einfach mal zurück in die öffentliche DP, da die Diskussion ja jetzt nicht mehr aktuell ist. Falls jedoch doch noch ein Fehler vorhanden sein sollte, entweder per PN oder hier einen neuen Beitrag verfassen.

Chris
 
16. Mai 2005, 15:51
Dieses Thema wurde von "Chakotay1308" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
Thema geschlossen


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz