WeeR Skrevet 1. september 2003 Del Skrevet 1. september 2003 Heisann! Har en stoor txt fil som jeg trenger å rydde opp i, og som blir oppdatert gjevnlig så det er ikke ett alternativ å gjøre dette manuellt. Problemet er : Linjene ser slik ut: 0000 358 1810 FILTER 9,00 Jeg trenger disse til å se slik ut : 00003581810;FILTER;9,00 Finnes det noe program som gjør dette? Takk på forhånd! Lenke til kommentar
DrDoogie Skrevet 1. september 2003 Del Skrevet 1. september 2003 Perl. Regular expression matching. www.activestate.com Lenke til kommentar
WeeR Skrevet 1. september 2003 Forfatter Del Skrevet 1. september 2003 Perl. Regular expression matching. www.activestate.com Hva trenger jeg å laste ned på den siden? *ikke noe peil på perl* Lenke til kommentar
DrDoogie Skrevet 1. september 2003 Del Skrevet 1. september 2003 *ikke noe peil på perl* Vel. Ett sted maa man starte, men kanskje det enkleste her allikevel ville vaert aa bruke "Erstatt" funksjonen i Word (husker ikke naa om man kan velge aa erstatte 'spesial' tegn, saa som 'ord', 'mellomrom' etc.). Paa lengre sikt vil du ha utbytte av aa laere deg litt perl. Last ned perl for windows, og saa kan du stille spoersmaal i programmeringsdelen av forumet. F.eks. "Hvordan skriver jeg en enkel one-liner for aa erstatte tegn i en fil?" Lykke til! :smile: Lenke til kommentar
WeeR Skrevet 1. september 2003 Forfatter Del Skrevet 1. september 2003 Har brukt erstatt funksjonen i Word for å få den som den er nå.. Men får litt problemer når jeg erstatter "space" med ";", fordi da blir koden: 0000;358;1810;FILTER;9,00 og ikke: 00003581810;FILTER;9,00 (selvfølgelig) Finner det ikke noe ferdig program som kan gjøre nytten? Dette gjelder kun en jobb og kjedelig å bruke så lang tid på den Lenke til kommentar
diskvask Skrevet 1. september 2003 Del Skrevet 1. september 2003 Det går kanskje an å slå sammen de feltene hvis du importerer fila i excel? Og så ta replace på de to siste? Verd et forsøk... Lenke til kommentar
Tosh Skrevet 1. september 2003 Del Skrevet 1. september 2003 mm, det er et greit forslag.. importer fila i excel, så får du nok alle oppdelingene i hver sin kolonne.. så kan du lage en ny kolonne hvor du f.eks skriver koden "=A1 & A2 & A3" som da vil trekke sammen det i de tre første.. kopier koden nedover hele kolonnen, og du vil få alle verdiene sammensatt.. deretter kan du f.eks kopiere hele den kolonnen, og velge å lime inn bare verdier, så er du ikke avhengig av de tre første, som du da kan slette. Deretter kan du velge å eksportere hele regnearket som en csv(kommaseparert) fil .. med semikolon som skilletegn.. edit men angående det du sier først om at dette er noe du kommer til å gjøre jevnlig så vil nok et lite program/script/whatever forenkle det meste ganske mye. perl er nå uansett ikke det dummeste å sette seg inn i.. edit igjen en tredje mulighet er å sette seg inn i (g)vim .. har ganske genial makrofunksjon for å gjøre samme operasjon mange ganger.. type .. hopp til etter første ord, fjern mellomrom, hopp til neste mellomrom, fjern mellomrom, hopp til neste mellomrom, erstatt med semikolon, hopp til neste mellomrom, erstatt med semikolon.. (f.eks .. qa^elxelxelr;elr;jq ..eller noe i den duren.. og så bare repeate vha @@) Lenke til kommentar
WeeR Skrevet 1. september 2003 Forfatter Del Skrevet 1. september 2003 mm, det er et greit forslag.. importer fila i excel, så får du nok alle oppdelingene i hver sin kolonne.. så kan du lage en ny kolonne hvor du f.eks skriver koden "=A1 & A2 & A3" som da vil trekke sammen det i de tre første.. kopier koden nedover hele kolonnen, og du vil få alle verdiene sammensatt.. deretter kan du f.eks kopiere hele den kolonnen, og velge å lime inn bare verdier, så er du ikke avhengig av de tre første, som du da kan slette. Deretter kan du velge å eksportere hele regnearket som en csv(kommaseparert) fil .. med semikolon som skilletegn.. Dette høres absolutt ikke dumt ut.. men problemet er når jeg importerer dette til excel så er det kun en linje.. dvs, all data ligger i A feltet og nedover... Det finnes vel en kommando i excel for å dele dette opp.. men husker ikke hvor den ligger.. hjelp? edit men angående det du sier først om at dette er noe du kommer til å gjøre jevnlig så vil nok et lite program/script/whatever forenkle det meste ganske mye. perl er nå uansett ikke det dummeste å sette seg inn i.. Tviler ikke på at det er dumt kunnskap er som kjent smart er bare ute etter å finne en enkel løsning som gjør at jeg ikke bruker såååå mange timer på dette oppdraget edit igjen en tredje mulighet er å sette seg inn i (g)vim .. har ganske genial makrofunksjon for å gjøre samme operasjon mange ganger.. type .. hopp til etter første ord, fjern mellomrom, hopp til neste mellomrom, fjern mellomrom, hopp til neste mellomrom, erstatt med semikolon, hopp til neste mellomrom, erstatt med semikolon.. (f.eks .. qa^elxelxelr;elr;jq ..eller noe i den duren.. og så bare repeate vha @@) Dette blir litt vanskelig ettersom det er en mengde forskjellige varer med forskjellige lengder osv.. så da vel ikke dette hvis jeg ikke tar helt feil? Lenke til kommentar
Legion Skrevet 1. september 2003 Del Skrevet 1. september 2003 enn om du i Word erstatter <space>F med ;F og R<space> med R; og etterpå erstatter du <space> med "ingenting" Lenke til kommentar
WeeR Skrevet 1. september 2003 Forfatter Del Skrevet 1. september 2003 enn om du i Word erstatter <space>F med ;F og R<space> med R;og etterpå erstatter du <space> med "ingenting" Virker ikke som word klarer "ingenting" ettersom hvis jeg prøver å skrive inn dette bytter den ikke ut noenting.. Lenke til kommentar
Legion Skrevet 1. september 2003 Del Skrevet 1. september 2003 "ingenting" som i ingen verdens ting, la den stå tom, urørt. jeg vet at det fungerer Lenke til kommentar
WeeR Skrevet 1. september 2003 Forfatter Del Skrevet 1. september 2003 Det fungerte faktisk det ja Men ett annet problem er jo at både Filter heter forskjellig på alle og nr på slutten er også forskjellig på alle *make it hard* Lenke til kommentar
Tosh Skrevet 1. september 2003 Del Skrevet 1. september 2003 har du et fint standardformat å fortelle oss, så kan det jo hende noen setter seg ned og lager en kjapp liten ting i ett eller annet programmeringsspråk som gjør akkurat det du vil. f.eks... tall tall tall tall talll tall (tall x ganger) bokstaver tall igjen som så skal gjøres om til .. langt tall;bokstaver;tall igjen (slik den du nevnte) kom med et par eksempler til, og et par regler, så blir det lettere å lage noe. Lenke til kommentar
Tosh Skrevet 1. september 2003 Del Skrevet 1. september 2003 tenkte jeg skulle teste ut mine c-skills for å lage et program som gjør det du ba om .. dvs, jeg tok utgangspunkt i den ene linja du ga meg. Fjerner alle mellomrom, slik at tallene i starten blir trekt sammen. Når den så kommer til en tekst, slenger den inn et semikolon før denne. Når den så kommer over et tall igjen, slenger den inn et nytt semikolon. #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { //litt info if(argc<3){ printf("Syntax: programnavn.exe <in> <out>n"); return 1; } //åpner filer FILE *in,*out; in = fopen(argv[1],"r"); out = fopen(argv[2],"w"); int c; int letters=0; //går gjennom alle tegn til den når slutten av fila while ((c=fgetc(in)) != EOF){ //finner ut når tekst starter if(c>=65 && letters==0){ fputc(';',out); letters=1; //finner ut når tekst slutter }else if(c<65 && letters==1){ fputc(';',out); letters=0; } //fjerner mellomrom if(c!=' ') fputc(c,out); } //lukker filer fclose(in); fclose(out); return 0; } Er ikke så l33t på c, men dette så iallfall ut til å fikse biffen. Har du ingen c-kompilator kan du teste ut programmet jeg kompilerte i win: http://www.ntnu.no/~tosh/c/tekstfiks.exe Syntax: tekstfiks input.txt output.txt Finnes output.txt fra før kan du antakeligvis bare glemme det du hadde i den. Fins den ikke fra før, lages den.. Hvis dette programmet av en eller annen grunn ødelegger pc'n din, ikke skyld på meg. Og har noen noen c-kommentarer til kodinga tas de imot med takk 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å