Black_Panda Geschrieben 7. April 2008 Geschrieben 7. April 2008 Entschuldigung könnte mir jemand mal Helfen, :confused: ich muss was von c++ in delphi übersetzen doch leider weiß überhaupt nicht wie diese function hier in delphi aussehen soll c++ code: int main( int argc, char * argv[] ) { if ( argc == 2 && ( !stricmp( argv[ 1 ], "/regserver" ) || !stricmp( argv[ 1 ], "/unregserver" ) || !stricmp( argv[ 1 ], "-regserver" ) || !stricmp( argv[ 1 ], "-unregserver" ) ) ) { // Ignore me } else if ( argc != 3 ) { printf( "Invalid commandline.\n" ); printf( "noahcopy <OldVer> <NewVer>\n" ); printf( "noahcopy 31 36\n" ); } {..........} {..........} danke für jede Hilfe Zitieren
Klotzkopp Geschrieben 7. April 2008 Geschrieben 7. April 2008 Statt argc kannst du die Funktion ParamCount benutzen, statt argv ParamStr. stricmp ist ein Stringvergleich ohne Berücksichtigung von Groß-/Kleinschreibung, das Delphi-Äquivalent wäre wohl AnsiCompareText. Das ! vor stricmp ist gleichbedeutend mit stricmp( ..., ... ) == 0. Zitieren
Black_Panda Geschrieben 7. April 2008 Autor Geschrieben 7. April 2008 Entschuldige aber irgendwie bekomm ich das nicht hin... Ich weiss garnicht wo ich anfangen soll??? LG und danke Zitieren
Klotzkopp Geschrieben 7. April 2008 Geschrieben 7. April 2008 Entschuldige aber irgendwie bekomm ich das nicht hin...Das ist keine ausreichende Problembeschreibung. Ich weiss garnicht wo ich anfangen soll???Am Anfang? Es sollte wohl in etwa so aussehen (Ohne Gewähr, ich kann das hier nicht testen): if ( ParamCount = 2 ) And ( ( AnsiCompareText( ParamStr(1), '/regserver' ) = 0 ) Or ( AnsiCompareText( ParamStr(1), '/unregserver' ) = 0 ) Or ( AnsiCompareText( ParamStr(1), '-regserver' ) Or AnsiCompareText( ParamStr( 1 ), '-unregserver' ) = 0 ) ) then begin // Ignore me end; else if ( ParamCount <> 3 ) then begin WriteLn( 'Invalid commandline.' ); WriteLn( 'noahcopy <OldVer> <NewVer>' ); WriteLn( 'noahcopy 31 36' ); end;[/code] Zitieren
Black_Panda Geschrieben 7. April 2008 Autor Geschrieben 7. April 2008 Super danke dir, hab es schon umgesetz es klappt mir fehlte noch die else Bedingung weil ich nicht wusste was ich statt printf nehmen soll, doch du hast es mir ja bereits beantwortet, vielen dank LG Zitieren
Black_Panda Geschrieben 7. April 2008 Autor Geschrieben 7. April 2008 Eine letzte Frage noch wie lässt sich sowas in delphi umsetzten char szBasePath[ MAX_PATH ]; Mein Problem ist dabei dieses Max_Path; dankeschön Zitieren
Klotzkopp Geschrieben 7. April 2008 Geschrieben 7. April 2008 mir fehlte noch die else Bedingung weil ich nicht wusste was ich statt printf nehmen soll Ja, das hättest du etwas früher schreiben können (beispielsweise statt "irgendwie bekomm ich das nicht hin"), dann hätte ich mir die Arbeit sparen können. Fehlen dir eigentlich die Grundlagen bei C oder bei Delphi? Das heißt, weißt du nicht, was printf tut, oder weißt du nicht, wie du in Delphi Texte auf der Konsole ausgibst? Mein Problem ist dabei dieses Max_Path; Schau halt in die Headerdateien des C-Programms. MAX_PATH wird in Windef.h definiert: #define MAX_PATH 260 Zitieren
Black_Panda Geschrieben 7. April 2008 Autor Geschrieben 7. April 2008 Ne du hast mich falsch verstanden,:upps ich habs ja nur dank dir umsetzten können, ich hab schon den Code benutzt den du mir gegeben hast. Mein Problem ist das ich nicht weiß wie man etwas in delphi auf der Konsole ausgibt. Vielen dank du hast mir echt geholfen ;)deine mühen waren nicht umsonst:uli. Danke Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.