Veröffentlicht 7. April 200817 j 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
7. April 200817 j 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.
7. April 200817 j Entschuldige aber irgendwie bekomm ich das nicht hin... Ich weiss garnicht wo ich anfangen soll??? LG und danke
7. April 200817 j 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]
7. April 200817 j 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
7. April 200817 j 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
7. April 200817 j 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
7. April 200817 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.