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
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.
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
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]
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
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
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
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden