Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi VB -> Delphi Problem (https://www.delphipraxis.net/22960-vbulletin-delphi-problem.html)

CReber 26. Mai 2004 21:31


VB -> Delphi Problem
 
CalcString,Username: String;
QuerSum:longint;
i:integer;

Code:
    For I = 1 To Len(CalcString)
        If Val(Mid$(CalcString, I, 1)) * I = 0 Then
            Quersum = Quersum + 4
        Else
            Quersum = Quersum + ((Val(Mid$(CalcString, I, 1)) * I) / 2)
        End If
    Next I
Ich hab das folgendermassen auf Delphi übersetzt ;)

Delphi-Quellcode:
  for i:=1 to Length(CalcString) do
    begin
      if (Ord(Username[i])) * i = 0 then
        Quersum:=Quersum + 4
      else
        Quersum:=Quersum + ((StrToInt(CalcString[i]) * I) div 2);
    end;
Also am Anfang funktioniert das ja auch aber irgendwie werden die Werte der Quersumme dann unterschiedlich...

MrSpock 26. Mai 2004 22:06

Re: VB -> Delphi Problem
 
Hallo hOnkibOnk,

warum läuft deine Delphi-Schleife nur bis Length(..)-1?

CReber 26. Mai 2004 22:17

Re: VB -> Delphi Problem
 
mein fehler ;) aber trotzdem funzt es nicht ;)

sakura 26. Mai 2004 23:08

Re: VB -> Delphi Problem
 
StrToInt und Ord sind verschiedener Natur (siehe OH).

Code:
  for i:=1 to Length(CalcString) do
    begin
      if (Ord(Username[i])) * i = 0 then
        Quersum:=Quersum + 4
      else
        Quersum:=Quersum + (([color=#FF0000]Ord[/color](CalcString[i]) * I) div 2);
    end;
...:cat:...

neolithos 26. Mai 2004 23:15

Re: VB -> Delphi Problem
 
Delphi-Quellcode:
for i := 0 to Length(CalcString) - 1 do
    begin
      iTmp := StrToInt(CalcString[i]);
      if iTmp * i = 0 Then
         Quersum := Quersum + 4
      else
         Quersum = Quersum + (iTmp * I) div 2;
    end;
Offen und beten wir mal das es stimmt.

The-X 26. Mai 2004 23:19

Re: VB -> Delphi Problem
 
Zitat:

Zitat von sakura
StrToInt und Ord sind verschiedener Natur (siehe OH).

Code:
  for i:=1 to Length(CalcString) do
    begin
      if (Ord(Username[i])) * i = 0 then
        Quersum:=Quersum + 4
      else
        Quersum:=Quersum + (([color=#FF0000]Ord[/color](CalcString[i]) * I) div 2);
    end;
...:cat:...

hmm? VB-Val = Delphi-Ord ?? Niemals!!!

Code:
  for i:=1 to Length(CalcString) do
    begin
      if ([color=#FF0000]StrToInt[/color](Username[i])) * i = 0 then
        Quersum:=Quersum + 4
      else
        Quersum:=Quersum + (([color=#FF0000]StrToInt[/color](CalcString[i]) * I) div 2);
    end;
oder aber (Ord(Username[i])-$30) das kommt auf selbe raus wenn nur Zahlen im String sind

DP-Maintenance 27. Mai 2004 06:31

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "VCL-Komponenten und Controls" nach "Object-Pascal / Delphi-Language" verschoben.
Hat ja eher weniger mit VCL zu tun ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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