Dirigera om printf

Tråden skapades och har fått 5 svar. Det senaste inlägget skrevs .
1

Hej, vet någon om ett sätt att dirigera om printf så att det hamnar i tex. en TextView? tptest innehåller en hel del printf och att byta ut samtliga verkar ganska jobbigt. Är det här verkligen det lättaste sättet att göra:

originalkod:
printf("External host: %s
", Host->h_name);
printf("Control port: %d
", Config.Port);
printf("Mode: %s
", TestText[Config.Mode]);

objective c:
NSString *tempText = [[NSString alloc] init];

tempText = [tempText stringByAppendingFormat:"External host: %s
", Host->h_name];
tempText = [tempText stringByAppendingFormat:"Control port: %d
", Config.Port];
tempText = [tempText stringByAppendingFormat:"Mode: %s
", TestText[Config.Mode]];

[textView setText:[[textView string] stringByAppendingString:tempText]];
[tempText release];

Finns det ett bättre sätt?

  • Medlem
  • International user
  • 2001-09-06 14:00

Varför vill du skriva ut det i en textvy? Är inte det något man vill undvika oftast när man gör en wrapper med GUI?

Annars vad du kan göra är att köra igång en NSTask med tptest i och sen läsa och parsa vad den skriver ut. Det är nog hur jag skulle göra det..

Vad menar du? Varför ska man undvika det?

Hur som helst kan ni ladda hem en alpha version från min idisk http://homepage.mac.com/gabrielf/

Programmet har ett grafiskt gränssnitt men kör fortfarande all output till printf så se till ha Console igång. Det fungerar bara att testa i Full Duplex och jag utgår ifrån att testet fullföljs så jag har inte testat vad som händer om något blir fel.

  • Medlem
  • International user
  • 2001-09-06 15:08

Så som det är just nu så startar man den via ett GUI och läser resultatet från console.log?

Om du tar och kapslar in den i en NSTask (kan skicka lite kod om du undrar hur) och läser stdout från den så har du ett smidigt sätt att få tillbaka resultatet utan att behöva ändra i ursprungliga sourcen (om dom uppdaterar).

Jo det vet jag, men jag tycker det är lite billigt att i princip bara göra ett program som genererar en sträng med växlar och sedan tar outputen och stoppar i ett fönster, det är ju inte ett sådant program man vill ha speciellt inte när man har tillgång till källkoden.

Hur som helst har jag kommit på ett bättre sätt nu så att jag slipper allt tjafs. Dessutom har jag snyggat till gränssnittet lite. Jag laddar upp en ny version senare ikväll som förhoppningsvis är så bra att jag kan nämna den i forumet Allmänt...

  • Medlem
  • International user
  • 2001-09-07 09:28

Jag menade inte att du skulle slänga outputen i en textview, jag menade att om du kapslade in verktyget och läste och parsade outputen så skulle du inte få problem om det kommer en uppdatering och samt att du kan fortfarande göra stort sett vad som hellst med den, inklusive avbryta testen. Det är ju ditt val vad som händer med all output.

Om parsning av text känns jobbigt så ta en titt på MOKit som är en unicode regex implementation i Obj-C.

1
Bevaka tråden