Avatar billede sfr Nybegynder
11. januar 2006 - 10:26 Der er 8 kommentarer og
1 løsning

TMP > file

Hej
Jeg har noget kode som jeg ikke selv har lavet, men som jeg gerne vil forstå for at kunne videreudvikle. Det drejer sig om et C-program der læser en txt fil og et tal og danner en ny txt-fil. Programmet eksekveres fra dos-prompt), dvs.
c:\program.exe ind.txt tal TMP > ud.txt

Der hvor jeg er gået i stå er delen "TMP >", er det noget med at der skrives til midlertidig fil? Hvor kan jeg læse om dette?
Avatar billede jensgram Nybegynder
11. januar 2006 - 10:35 #1
Nu kender jeg ikke noget til C, men prøv at kigge efter argv (char **argv).

Det ligner, at det er et array, index, hvad-det-nu-hedder-i-C, der kan tilgås argv[1], argv[2] osv...

Måske!

-  Jens Gram
Avatar billede pidgeot Nybegynder
11. januar 2006 - 10:35 #2
Hvis vi nu deler den op:

c:\program.exe - programmet der skal køres
ind.txt - Første parameter
tal - Anden parameter
TMP - Tredje parameter
> ud.txt - Instruktion til DOS/din kommandoprompt om at ud.txt skal bruge som stdout (standard output)

Efter ekskvering af denne kommando, skulle du ende med en fil ud.txt der indeholder programmets output. Hvis du ikke angav det sidste (> ud.txt), burde det blive skrevet direkte ud på skærmen, med mindre programmet på en eller anden måde kan gå ind og checke på dette.
Avatar billede sfr Nybegynder
11. januar 2006 - 11:41 #3
aha, hvis jeg undlader (>) bliver output skrevet til skærmen OG til ud.txt.
argv[0]-program.exe
argv[1]-ind.txt
argv[2]-tal
argv[3]-ud.txt
Men hvad med TMP?
Avatar billede pidgeot Nybegynder
11. januar 2006 - 12:49 #4
Altså, det er selvfølgelig lidt svært at sige hvordan dit program virker når vi ikke ved hvilket program det er - men som jeg forstår dig korrekt, så laver kommandoen

program.exe ind.txt tal ud.txt

en fil kaldet ud.txt der indeholder outputtet? I så fald vil du med din oprindelige kommando få en fil der hedder TMP med outputtet, mens ud.txt vil indeholde det der normalt ville blive skrevet til skærmen.

Du skal ikke tage dig af at der står

TMP >

de to ting hænger ikke sammen, og programmet vil alligevel ikke se længere end til TMP (da > ud.txt behandles af din konsol).
Avatar billede sfr Nybegynder
11. januar 2006 - 13:10 #5
hmm. det kan godt være det ikke er et C-spørgsmål så.

argv[0]-program.exe
argv[1]-ind.txt (indeholder data på tekstformat)
argv[2]-tal (tal som bruges til at ændre på nogle af data i ind.txt)
argv[3]-ud.txt (outputtet, hvor data er ændret i forhold til tal (argv[2])

c:\argv[0] argv[1] argv[2] argv[3] ;skriver output til skærm og til argv[3]
c:\argv[0] argv[1] argv[2] > argv[3] ;virker ikke!
c:\argv[0] argv[1] argv[2] TMP > argv[3] ; skriver ikke output til skærm, men til argv[3], dvs. der er hurtigst og sådan det bør være.

Derfor er jeg interesseret i at vide hvad TMP gør. jeg kan se der bliver oprettet en fil i directory, men 0 kb!?
Avatar billede pidgeot Nybegynder
11. januar 2006 - 13:48 #6
Det er umuligt at sige hvad TMP gør uden at vide hvilket program det er. Du kan måske få en ide hvis du kører programmet uden parametre, altså bare c:\program.exe.
Avatar billede sfr Nybegynder
11. januar 2006 - 14:03 #7
Der er kun de 4 argumenter som listet ovenfor - ikke andre, altså ikke "TMP >". Der sker fejl, hvis der ikke er de 4 argumenter. Som jeg prøvede at illustrere ovenfor så ser det ud til at "TMP" og ">" hænger sammen, og at det, som du var inde på pidgeot, har noget at gøre med kommando til konsollen.
Avatar billede sfr Nybegynder
12. februar 2006 - 12:50 #8
Hej. det ER noget konsol-ting, dvs. jeg er i den forkerte kategori. tak for at du ledte mig på sporet, smid et svar pidgeot og du skal få point
Avatar billede pidgeot Nybegynder
12. februar 2006 - 15:45 #9
Værsgo :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester