kjey Skrevet 7. juli 2008 Del Skrevet 7. juli 2008 (endret) Hei. Jeg har nå drevet på C en liten stund og lurer litt på om jeg skal bevege meg litt videre med å begynne på et "større" prosjekt. Det jeg da tenkte var å lage en tekst-editor som brukes via terminal (i Linux), akkurat som f.eks. nano, vim ol, bare mye enklere. Det første jeg føler jeg må adressere er hvordan terminalen kan bli som en teksteditor. Hvis jeg f.eks. bruker scanf() til å skrive inn tekst og trykker <enter>, kan jeg jo ikke gå tilbake å editere en tidligere linje. Med andre ord: jeg regner med at dette må gjøres på en helt annen måte. Det jeg da lurer på er om noen av dere har anelse om hvordan dette kan gjøres? Trenger ikke få en løsning på det, men en pekepinne ville ikke skadet Håper noen kan hjelpe! EDIT: Det jeg muligens trenger er en funksjon (lignende scanf) som ikke avsluttes når man trykker på enter, altså jeg kan lage linjeskift og gå tilbake osv uten at funksjonen returnerer, men aner ikke hvordan dette kan gjøres. Endret 7. juli 2008 av kjey Lenke til kommentar
Giddion Skrevet 7. juli 2008 Del Skrevet 7. juli 2008 Jeg tror ikke scanf er tingen her, men gjør som du føler passer best. Jeg viller heller lest hele filen inn med fread for så splitte filen opp i linjer (hvis tekst). Når du har splittet linjene kan du så redigere enkeltlinjer tegn for tegn og linje for linje. Hvis du heller vil bruke direkte fil I/O så bør du kikke på: fsetpos og fgetpos. Funksjonene gjøre et mulig å flytte seg fram og tilbake i filen. Lykke til Lenke til kommentar
CoolBeer Skrevet 7. juli 2008 Del Skrevet 7. juli 2008 Du kan også bruke ncurses til dette formålet. Et annet tips kan være å spionere litt i kildekoden til nano/vim og se hvordan de gjør det. Lenke til kommentar
WhiteFire Skrevet 7. juli 2008 Del Skrevet 7. juli 2008 Søk litt på texteditor c tutorial i google og du vil finne mye rart. Hvorfor har du valg akkurat C? C++ er noe greiere å forholde seg til. Lenke til kommentar
kjey Skrevet 7. juli 2008 Forfatter Del Skrevet 7. juli 2008 Jeg bruker C fordi det er det språket jeg vil lære meg Kommer garantert borti C++ også, men akkurat nå er det C som er tingen. Men uansett. Jeg har googlet en del og funnet noe, men ingenting som forklarer godt nok hvordan man kan oppnå dette. Det jeg tenkte litt på er å se på hvordan scanf(), gets() osv er implementert. På den måten kan jeg kanskje luke ut <enter>-mekanismen og heller si at funksjonen skal skifte linje. Har søkt en del på dette også, men kan ikke si at jeg har funnet noen implementasjon av disse funksjonene... Noen som vet hvor man kan finne disse (gjerne hjemmesnekra av vanlige folk)? Lenke til kommentar
Sokkalf™ Skrevet 8. juli 2008 Del Skrevet 8. juli 2008 Har ikke lagd noe lignende selv, og er også litt nybegynner i C.. men jeg tror kanskje at å lage en buffer av skjermen (dvs, typisk 80 * 25 chars i text mode), samt å lage en "eventloop" som reagerer på f.eks piltastene, og oppdaterer posisjon i bufferen (x,y). Videre må man implementere scrolling osv for at fila skal kunne være større enn skjermen. Vel, bare noen tanker, men tror det er her jeg ville begynt. Lenke til kommentar
Dj_Offset Skrevet 9. juli 2008 Del Skrevet 9. juli 2008 Du kan også bruke ncurses til dette formålet. Jepp. Det finnes mange curses tutorials. Curses har også et greit API for vinduer og vindushåndtering i tekst. Lenke til kommentar
teflonpanne Skrevet 10. juli 2008 Del Skrevet 10. juli 2008 Du burde også lese litt om IO multiplexing (se på funksjonen select f.eks) og søke på advanced io unix eller noe på google. Kunne sagt litt mer, men må stikke nå. Lenke til kommentar
Dj_Offset Skrevet 11. juli 2008 Del Skrevet 11. juli 2008 Du burde også lese litt om IO multiplexing (se på funksjonen select f.eks) og søke på advanced io unix eller noe på google. Kunne sagt litt mer, men må stikke nå. Det ser jeg ingen grunn til i en teksteditor. En trenger ikke lese fra flere fildeskriptorer på en gang. Lenke til kommentar
GeirGrusom Skrevet 11. juli 2008 Del Skrevet 11. juli 2008 *les fil inn i minnet* *del opp filen i en array av linjer* *rediger teksten* *eventuelt lagre filen igjen* Tror ikke du trenger mer en standard C biblioteker egentlig. Kanskje noe for å lage et backbuffer til å tegne UI-et på. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå