Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> Sonstiges
Autor
Nachricht
sollniss
Überflieger
Überflieger

Anmeldedatum: 01.05.2008
Beiträge: 699

Javascript zu VB.NET
Verfasst am: 06.07.2008, 02:18

Suche entweder nen Converter, oder jemandem der mir Hilft ca. 100 Zeilen Javascript zu übersetzen. Das Gröbste versteh ich ja, allerdings gibts da immer kleinere Dinge, wo ich nicht genau weiß, was die machen/was die bedeuten. ^^
_________________
 
^^kev####
Überflieger
Überflieger

Anmeldedatum: 01.05.2008
Beiträge: 476
Wohnort: Haan


Verfasst am: 06.07.2008, 10:43

Dann Poste doch mal den JS Code und makier die stellen, die du nicht weißt Wink
_________________
 
sollniss
Überflieger
Überflieger

Anmeldedatum: 01.05.2008
Beiträge: 699


Verfasst am: 06.07.2008, 11:12

function getTillion(i)
{
var WW=new Array("M","B","Tr","Quadr","Quint","Sext","Sept","Okt","Non","Dez","Undez","Duodez","Tredez","Quadradez","Quintadez","Sextadez");
var WWW=new Array("","Un","Duo","Tre","Quattuor","Quin","Sex","Septen","Okto","Novem");
var WWWW=new Array("","Dez","Vigint","Trigint","Quadragint","Quinquagint","Sexagint","Septuagint","Oktogint","Nonagint");
var WWWWW=new Array("","Cent","Ducent","Trecent","Quadringent","Quingent","Sescent","Septingent","Octingent","Nongent");
var WWWWWW=new Array("","Millia","Domillia","Tremillia","Quattuormillia","Quinmillia","Sexmillia","Septenmillia","Oktomillia");
if(i==0)return "";
if(i<10)return WW[i-1];
var e=i%10,z=Math.floor(i/10)%10,h=Math.floor(i/100)%10,t=Math.floor(i/1000)%10,
zt=Math.floor(i/10000)%10,ht=Math.floor(i/100000)%10;
var a=WWW[e]+WWWW[z];if(i<100)return a.charAt(0).toUpperCase()+a.substr(1,a.length).toLowerCase();
a=WWWWW[h]+a;
if(i<4000)a=WWWWWW[t]+a;
else a=WWWWW[ht]+WWW[t]+WWWW[zt]+"millia"+a;
var aa=a.charAt(a.length-1);
if((aa!="t")&&(aa!="z"))a+="t";
return a.charAt(0).toUpperCase()+a.substr(1,a.length).toLowerCase();
}
function getZahlwort(x,tr)
{
x=String(x);
if(x=="pi")return getZahlwort("3,1415")+" ...";
if(x=="e")return getZahlwort("2,7182")+" ...";
if((x=="phi")||(x.indexOf("goldener Schnitt")==0))return getZahlwort("0,6180")+" ...";
if(x=="Phi")return getZahlwort("phi").replace(/null K/,"eins K");
if(x.indexOf("/")>-1)return getBruchZahlwort(x);
if(x=="0")return "null";
x=x.replace(/ /g,"").replace(/./g,",");
xx=x.split(",");
if(x.replace(/D/g,"")=="")return "";
var t="",v=(x.charAt(0)=="-")?"Minus ":"",i=0;

x=x.replace(/-/,"").replace(/ /g,"");
x=xx[0].replace(/D/g,"");
if(x.length>999999*6)return "diese Zahl ist unheimlich groß, die ist mir zu unheimlich";
var ZZ=new Array("null","eins","zwei","drei","vier","fünf","sechs","sieben","acht","neun");
var ZZZ=new Array("zehn","elf","zwölf");
var ZZig=new Array("","zehn","zwanzig","dreißig","vierzig","fünfzig","sechzig","siebzig","achtzig","neunzig");
if((tr==null)||(tr==false)||(x<1000000))tr=(1==0);else tr=(1==1);
var trz=(tr)?" ":"";
if(x=="0,0")return"Nullkommanix";
while(x!="")
{
while(x.length<3)x="0"+x;
var y=x.substr(x.length-3,3);x=x.substr(0,x.length-3);
while(y.length<3)y="0"+y;//alert(y);
var y1=parseInt(y.charAt(0)),y2=parseInt(y.charAt(1)),y3=parseInt(y.charAt(2));
var tt=ZZ[y1]+"hundert";
if(y2==1){if(y3<3)tt+=ZZZ[y3];else tt+=ZZ[y3].replace(/hs/,"h").replace(/en/,"")+"zehn";}
else tt+=ZZ[y3]+((y2>1)?"und"+ZZig[y2]:"");
tt=tt.replace(/nullhundert/,"").replace(/eins/g,"ein").replace(/nullund/g,"").replace(/null/g,"");
if((tt=="ein")&&(i==0))tt+="s";
if(i==0)t="_"+tt+t;
if((i==1)&&(tt!=""))t="_"+tt+"tausend"+t;
if((i>1)&&(tt=="ein")){t="_eine"+trz+getTillion(Math.floor(i/2))+(((i%2)==1)?"illiarde":"illion")+trz+t;}
else if((i>1)&&(tt!=""))t="_"+tt+trz+getTillion(Math.floor(i/2))+(((i%2)==1)?"illiarden":"illionen")+trz+t;
i++;
}
var T=t.split(" ");
//T[0]=T[0].replace(/_/,"");
for(i=0;i)T[i]=T[i].charAt(0).toUpperCase()+T[i].substring(1,T[i].length).toLowerCase();
t=T.join(trz).replace(/_/g,"");
if(!tr)t=t.toLowerCase();
if(xx.length>1)
{
if(t=="")t="null";
x=xx[1].replace(/D/g,"");
t+=" Komma";
for(i=0;i)t+=" "+ZZ[parseInt(x.charAt(i))];
}
return v+t;
}
function getZehnerpotenz(n)
{
n=parseInt(String(n));
if(isNaN(n))return "";if(n==0)return"eins";if(n==1)return"zehn";if(n==2)return"hundert";
if(n==3)return"tausend";if(n==4)return"zehntausend";if(n==5)return"hunderttausend";
if(n==-1)return"ein Zehntel";if(n==-2)return"ein Hundertstel";
if(n==-3)return"ein Tausendstel";if(n==-4)return"ein Zehntausendstel";
if(n==-5)return"ein Hunderttausendstel";
if(n==100)return"zehn Sexdezilliarden - oder 'ein Googol'";
var v=(n<0);n=Math.abs(n);var m=n%6,p=m%3,q=m>2,n=(n-m)/6;
var t=(new Array("eine","zehn","hundert"))[p]+" "+getTillion(n)+"illi"+(q?"arde":"on");
if(!v)return (t+((p>0)?"en":"")).replace(/ee/,"e");
t=t.replace(/eine/,"").replace(/ /,"").toLowerCase();
return "ein "+(t.charAt(0).toUpperCase()+t.substr(1,t.length-1)+"stel").replace(/estel/,"stel");
}
function getBruchZahlwort(x)
{
var xx=x.split("/");if(xx.length==1)return getZahlwort(x);
if((xx[1]=="")||(String(x).replace(/./,",").indexOf(",")>-1))return "";
var Z=getZahlwort(xx[0],true),N=getZahlwort(xx[1])+"tel";
if(N=="nulltel")return Z+" geteilt durch Null (nicht definiert!)";
if(Z=="eins")Z="ein";
N=N.replace(/ttel/,"tel").replace(/igtel/,"igstel").replace(/eine/,"");
N=N.replace(/dreitel/,"drittel").replace(/bentel/,"btel");
N=N.charAt(0).toUpperCase()+N.substr(1,N.length-1);
N=N.replace(/ionentel/,"ionstel").replace(/iardentel/,"iardstel");
N=N.replace(/iontel/,"ionstel").replace(/iardetel/,"iardstel");
if(N=="Zweitel")N=(Z=="ein")?"Halb":"Halbe";
if(N=="Einstel")N=(Z=="ein")?"Ganzes":"Ganze";
return Z+" "+N;
}


% hab ich einfach mal mit Mod, a+=b mit a = a + b übersetzt.
 
Marduk
Überflieger
Überflieger

Anmeldedatum: 16.04.2008
Beiträge: 374


Verfasst am: 06.07.2008, 13:23

Converter wirds da keinen geben, da js meistens auf den HTML Code einer Seite zugreift und diesen direkt ändert. Da kann VB nichts mit anstellen.

Gibt zwar auch andere Bereiche, für die js eingesetzt wird, aber glaub kaum, dass dafür extra ein Converter gibt

Also her mit dem Source:D
 
sollniss
Überflieger
Überflieger

Anmeldedatum: 01.05.2008
Beiträge: 699


Verfasst am: 06.07.2008, 17:26

Die getTillion Funktion hab ich so übersetzt:
Visual Basic: [code]Private Function getTillion(ByVal i As Double)
Dim WW() As String = {"M", "B", "Tr", "Quadr", "Quint", "Sext", "Sept", "Okt", "Non", "Dez", "Undez", "Duodez", "Tredez", "Quadradez", "Quintadez", "Sextadez"}
Dim WWW() As String = {"", "Un", "Duo", "Tre", "Quattuor", "Quin", "Sex", "Septen", "Okto", "Novem"}
Dim WWWW() As String = {"", "Dez", "Vigint", "Trigint", "Quadragint", "Quinquagint", "Sexagint", "Septuagint", "Oktogint", "Nonagint"}
Dim WWWWW() As String = {"", "Cent", "Ducent", "Trecent", "Quadringent", "Quingent", "Sescent", "Septingent", "Octingent", "Nongent"}
Dim WWWWWW() As String = {"", "Millia", "Domillia", "Tremillia", "Quattuormillia", "Quinmillia", "Sexmillia", "Septenmillia", "Oktomillia"}

If i = 0 Then
Return "" : Exit Function
ElseIf i < 10 Then
Return WW(i - 1) : Exit Function
End If

Dim e As String = i Mod 10
Dim z As String = Math.Floor(i / 10) Mod 10
Dim h As String = Math.Floor(i / 100) Mod 10
Dim t As String = Math.Floor(1 / 1000) Mod 10
Dim zt As String = Math.Floor(i / 10000) Mod 10
Dim ht As String = Math.Floor(i / 100000) Mod 10

Dim a As String = WWW(e) & WWWW(z)
If i < 100 Then Return a : Exit Function

a = WWWWW(h) & a
If i < 4000 Then
a = WWWWWW(t) & a
Else
a = WWWWW(ht) & WWW(t) & WWWW(zt) & "millia" & a
End If

Dim aa As String = a.Chars(a.Length - 1)
If aa <> t And aa <> z Then a = a & "t"
Return a.ToUpperInvariant(0) & a.Substring(1, a.Length).ToLower
End Function[/code]
_________________


 
The-God-of-all
Tutorial Leser
Tutorial Leser

Anmeldedatum: 01.05.2008
Beiträge: 35


Verfasst am: 08.07.2008, 15:17


Also ich kann dir bei einer Sache helfen die du wie ich gesehen habe mehrfach markiert hast: das: || bedeutet nichts anderes als OR in VB.

Was ist das überhaupt für ein Code? So wie der geschrieben ist soll der wohl nicht von Menschen verstanden werden weil das:

if((tr==null)||(tr==false)||(x<1000000))tr=(1==0);else tr=(1==1);

müsste man viel einfacher hinkriegen.

Wie du sicher bereits gemerkt hast werden in Javaskript (genau so wie in C, C++, Java...) zwischen einem Vergleich (immer ==) und einer Zuweisung unterschieden. tr=(1==0) weist also der Variable tr das Ergebnis vom Vergleich 1 == 0 zurück was immer false sein wird. In dem else Block wird tr immer auf true gesetzt. Das ganze könnte man also in VB auch so schreiben:

Visual Basic: [code]If tr is Nothing [/code]Visual Basic: [code]Or tr = false or x < 1000000 then
tr = False
Else
tr = True
End If
[/code]

Das: var trz=(tr)?" ":""; deklariert erst die Variable trz und weist ihr dabei einen Wert zu. In JS gibt es die Konstruktion Bedingung ? Dann : Sonst, das entspricht also in etwa der VB Funktion IIf. Der Variable trz wird also je nach dem ob die Variable tr True oder False ist entweder " " oder "" zugewiesen.
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> Sonstiges

Tags: javascript, übersetzen

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge [Umfrage] VB6-Code in Vb.Net umwandeln 3243 25.04.2008, 20:11
Keine neuen Beiträge Mp3 in vb einbinden... 598 08.10.2007, 18:46
Keine neuen Beiträge RAT in VB proggen + Frage 483 18.05.2007, 22:32
Keine neuen Beiträge Chatbot in vb ????? 1825 09.05.2007, 18:52
Keine neuen Beiträge [VB.Net] kleines Problem in vb 486 23.03.2007, 14:40
 




[ Time: 0.2617s ][ Queries: 103 (0.0191s) ][ GZIP on - Debug on ]