Delphi-PRAXiS
Seite 4 von 6   « Erste     234 56      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Hilfe beim Übersetzten von C in Delphi (https://www.delphipraxis.net/88928-hilfe-beim-uebersetzten-von-c-delphi.html)

Robert Marquardt 24. Mär 2007 16:23

Re: Hilfe beim Übersetzten von C in Delphi
 
argc entspricht ParamCount bei Delphi und argv entspricht den strings die ParamStr liefert.
argv ist ein Array von PChars. In C ist array und Zeiger auf das erste Element weitgehend synonym.
Jedes C Programm bekommt also die in elemente zerlegte Kommandozeile mitgeliefert. argv[0] ist der Pfadname des Programms selbst und argv[1] bis argv[argc-1] sind die C Strings der Kommandozeilenparameter. argv[argc] ist immer nil. Das ist wie beim C String und #0 ein (hier zusaetzliches) Endezeichen.
Das ist die C-Art eine Stringliste zu machen.

simjoh 24. Mär 2007 16:32

Re: Hilfe beim Übersetzten von C in Delphi
 
Versteh ich leider nicht.

Robert Marquardt 24. Mär 2007 16:37

Re: Hilfe beim Übersetzten von C in Delphi
 
Unbedingt C lernen. Da lernt man was ein Pointer ist und wozu man ihn gebrauchen kann.

simjoh 24. Mär 2007 16:40

Re: Hilfe beim Übersetzten von C in Delphi
 
Ich kenn mich in Delphi so einigermaßen aus. Deshalb denke ich, dass an die Hauptfunktion zwei Argumente beim Aufruf übergeben werden müssen. Das scheint auch so zu sein, ich weiß halt nur nicht welche.

Könntest du mir bei den anderen Fragen nochmal zur Seite stehen?

Klaus01 24. Mär 2007 17:51

Re: Hilfe beim Übersetzten von C in Delphi
 
Entschuldige, dass ich mich einmische,
aber es gibt eine schöne Webseite da wird C ganz gut erklärt.
Auch argc und argv.

Grüße
Klaus

simjoh 24. Mär 2007 18:00

Re: Hilfe beim Übersetzten von C in Delphi
 
Ja, danke. Bin noch nicht so fit, glaube, ich schmeis mein Prog weg. Schade.

Danke an alle!!

Klaus01 24. Mär 2007 18:08

Re: Hilfe beim Übersetzten von C in Delphi
 
Zitat:

Zitat von simjoh
Ja, danke. Bin noch nicht so fit, glaube, ich schmeis mein Prog weg. Schade.

Danke an alle!!

Warum? Jetzt hat Dir der Robert schon so weit geholfen.
Ein wenig mehr in die Materie eingraben und etwas Ergeiz entwickeln dann wird das schon.

Ich bin in C auch nicht fit, aber wenn man schonmal weiß wo nachschauen und nachfragen kann ...

Grüße
Klaus

simjoh 24. Mär 2007 18:12

Re: Hilfe beim Übersetzten von C in Delphi
 
Danke für deinen Zuspruch. Hab das Programm jetzt auch komplett in Delphi übertragen, bis auf die Fragen, die Robert noch nicht beantwortet hat. Die Teile hab ich erstmal in Kommentar gesetzt. argc hab ich überall durch ParamCount ersetzt und argv durch ParamStr. Leider ist in ParamCount der Wert 0 enthalten, müsste eigentlich 1 sein. Warum, weiß ich nett.

Klaus01 24. Mär 2007 18:22

Re: Hilfe beim Übersetzten von C in Delphi
 
Nun, wenn Dein Programm ohne Parameter gestartet wird, ist ParamCount auch 0.
Und im ParamStr(0) steht Dein Programmname.

Wenn Du Dein Programm mit Parameter startest wird ParamCount auch <> 0 sein.

Schau mal in der Delphi IDE unter der Option run nach Parameters, dort
kannst Du die Parameter übergeben.

Oder Du startes Deine Exe mit einer Verknüpfung, in der Verknüpfung
kannst Du dann den Parameter fest vergeben.

Oder Du startest Dein Programm aus der Console (cmd) und gibst
ihm dan manuell einen Parameter mit.

Ergänzung:

~ -> bitweises Komplement -> http://www.pronix.de/pronix-676.html

Zitat:

Was ist denn char** ?:
C-Quellcode: markieren
void ParseArgs(int argc,char** argv)
char ** entspricht in Delphi einer StringList, also einer Aufreihung von Strings.
Bei argv kannst Du dann mit argv[0], argv[1] usw. darauf zugreifen.


Grüße
Klaus

simjoh 24. Mär 2007 18:37

Re: Hilfe beim Übersetzten von C in Delphi
 
Lieber Klaus,

wenn ich mein Prog mit Parameter starten könnte, weiß ich immer noch nicht, welche Parameter ich übergeben sollte. So, jetzt weißt du, wie weit ich weg bin von einer erfolgreichen Übertragung eines C-Programms in ein Delphi-Programm. :roll: :wall: :wall: :wall: :wall: :wall: :wall: :wall: :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:28 Uhr.
Seite 4 von 6   « Erste     234 56      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz