Visual C++ . Output til textbox.

Tags:    c++

<< < 12 > >>
Jeg forsøger mig med at "oversætte" min consol-app over til et visual C++ project :)
-----

Hvis man fx i en console app laver:
system("net view");

Er der en måde jeg kan tildele min txtbox det output jeg får?



Du kan bruge funktionen popen i stedet for system, se f.eks:
http://www.lix.polytechnique.fr/~liberti/public/computing/prog/c/C/FUNCTIONS/popen.html



Har læst linket du skrev og læst lidt på: " http://social.msdn.microsoft.com/Search/da-DK?query=popen&ac=8 "

om popen function'en.
Og har forstået det skulle se sådan her ud:

Fold kodeboks ind/udKode 


Men kan se de begge er forkert, har ikke rigtig forstået syntax'en.
----
Er forresten faldet en del over den her: *

Dumt spørgsmål måske, men hvad er den til for?
Har brugt den til at lave "const char" før, men ved ikke hvad den har gjord godt for, og kan se den også er en del af popen og wopen.





Indlæg senest redigeret d. 28.09.2009 21:32 af Bruger #13865
popen giver dig en FILE* som du kan læse fra med diverse f* funktioner, som f.eks. fgets:
http://www.cplusplus.com/reference/clibrary/cstdio/fgets/

I eksemplet på cplusplus bruger de fopen til at åbne en fil, du skal bruge popen fordi du skal åbne en "process", dvs. et program, f.eks. "net view".

Du kan ikke bare bruge AppendText til at hente teksten med (tror jeg, jeg ved heldigvis ikke hvad AppendText er).



AppendText var i fejl :) .


Jeg er kommet til:
Fold kodeboks ind/udKode 


Og som du kan se har jeg næsten intet fattet.
Sidder og kigger log og prøver mig frem, for selv efter at have læst på MSDN og de to links om functionerne popen og fopen.

Læste forresten at fopen streamer til, den jeg har kaldt "buffer" og den stopper med det efter antallet af tegn "200" i mit tilfælle.
Men at den også stopper med at læse når den når til en ny linje, og det er der vel umildbart i outputtet fra "net view"
Bliver det ikke et problem? Eller er min opfattelse af fopen helt ved siden af?





Du bliver nødt til at læse en linje af gangen, indtil du har læst det hele. fgets returnerer null når der ikke er mere at læse.



Mit output fra:

Fold kodeboks ind/udKode 


Er: "Servernavn Bemærkning"
Altså kun den første linje fra "net view".



Du skal have en løkke i hvilken du læser, en linje af gangen, indtil der ikke er mere at læse, f.eks:
Fold kodeboks ind/udKode 


Bemærk at det er pclose og ikke fclose



nåår ja selfølgelig :)



Det ser ud til jeg skal lave mit output fra:
char * til en string før jeg kan skrive det til en txtbox.

Og så får jeg 2 Fejl i visual C++ som jeg ikke får i min consol.
Fold kodeboks ind/udKode 


Jeg får fejlene:
Form1.h(105) : error C3861: 'popen': identifier not found

Form1.h(112) : error C3861: 'pclose': identifier not found


Har ingen idé om hvad compileren mener med:
"identifier"



identifer er blot et navn på en ting, i dette tilfælde "popen" og "pclose"

Du bliver måske nødt til at bruge _pclose og _popen når det er VisualC++, se:
http://msdn.microsoft.com/en-us/library/96ayss4b%28VS.71%29.aspx



<< < 12 > >>
t