externes Programm
-
Guten Tag,
ich habe das Problem, dass ich aus einem schon bestehenden C Programm die Ausgabe weiterverarbeiten will. Mir ist jetzt nicht ganz klar welchen Weg ich gehen soll.
Ob ich das Programm umschreiben soll. So das ich es in mein Programm einbinde kann, also das es die Sachen die ich brauche als Variablen zurück gibt.
Ober ob ich die Ausgabe nach Durchlauf einlese und mir alles was ich brauche irgendwie heraussuche.
Punkt 1. wäre recht umständlich, da es ein kompliziertes Programm istund viele, recht lange Zeichenketten zurück gibt.
Punkt 2. finde ich irgendwie unsauber.Danke danke
Hanswurst110
PS: habe auch nicht die meinsten C-Erfahrungen
-
Dieser Thread wurde von Moderator/in CMatt aus dem Forum C# und .NET in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Gegenfrage: Was hast du denn für ein Programm? Und was willst du daraus machen?
Generell wäre es der bessere Weg, die wichtigen Funktionen des Programms zu nehmen und in dein neues Programm einzubinden. (aber das setzt natürlich voraus, daß du etwas halbwegs strukturiertes vorgesetzt bekommen hast - wenn das Programm nur aus einer riesigen main()-Funktion besteht, wird's übel)
-
Es handelt sich um ein Sequenzalignment Programm (FASTA) ftp://ftp.virginia.edu/pub/fasta/fasta3.shar.Z
Ich habe es auch schon die meisten Daten gefunden, aber finde das doch irgendwie sehr kompliziert. Zumal die meisten Ergebnisse in Unterfunktionen berechnet werden und dann auch dort ausgegeben werden. Also die Funktionen garnichts zurück geben.
Wollte halt wissen ob ich da nicht völlig auf dem Holzweg bin.
-
hanswurst110 schrieb:
Zumal die meisten Ergebnisse in Unterfunktionen berechnet werden und dann auch dort ausgegeben werden. Also die Funktionen garnichts zurück geben.
Das ist ein sicheres Anzeichen dafür, daß der Autor das Programm nicht zur Weiterverwendung vorgesehen hat.
Wenn die Ausgaben wirklich direkt nach stdout gehen, bleibt dir vermutlich nichts anderes übrig als in den Quelltext reinzugehen und das zu überarbeiten*. (oder du schaffst es, die Standardausgabe so umzubiegen, daß du deren Daten weiterverarbeiten kannst)
Wenn die Funktionen noch gesagt bekommen können, wohin sie schreiben sollen, wäre das der Ansatzpunkt (in C++ würde ich stringstream reinreichen, C dürfte da etwas komplizierter sein).* Das setzt natürlich voraus, daß du den Quelltext vorliegen hast.
PS: Eventuell wäre setvbuf() ein Ansatzpunkt, um an die Ausgaben deines Programms zu kommen.