Skrevet ons. d. 20. august 2003 kl. 00:18:53| #1
Skal du have det gjort med en tekst-fil eller ...
-- og er du kun inde i f.eks. windows, når du skal have det udført ?-)
Skrevet ons. d. 20. august 2003 kl. 00:22:51| #2
der er mange editorer der kan - specielt hvis de understøtter regulære udtryk. Du
skulle vel ikke anvende EditPlus fx - eller vi
Skrevet ons. d. 20. august 2003 kl. 00:27:43| #3
Hvis du er så heldig at bruge Windows NT/2k/XP kan du bruge:
for /F "tokens=1,2,3,4" %A in (tt.tt) do @echo %A %B %C %D >>tt.out
hvor tt.tt er indput & tt.out er output
Hvis du putter det i en bat-fil skal du erstatte %A med %%A osv
Skrevet ons. d. 20. august 2003 kl. 00:29:59| #4
Det vil dog nok ikke virke med Hans Peter Hansen - men det kan være det ikke står der.
Skrevet ons. d. 20. august 2003 kl. 00:37:34| #5
Man kan bruge:
for /F "tokens=1,2 delims=-" %A in (tt.tt) do @echo %A - %B >>tt.out
Hvis der er nogen der har mere end et fornavn.
Skrevet ons. d. 20. august 2003 kl. 00:48:47| #6
Det dur dog ikke hvis der er nogen der hedder Hans-Peter.
Skrevet ons. d. 20. august 2003 kl. 00:58:01| #7
--> bertelbrander
har prøvet det med at putte det ind i en bat fil, men for ('/F' is not recognized as an internal or external command.)
-->erikjacobsen
Den første del af hver linie kan indeholde et navn, efternavn, firma
anden del indeholder en tal kode.
Det er blot de sidste 6 karaktere i hver linie der skal skæres væk.
Skrevet ons. d. 20. august 2003 kl. 01:02:11| #8
Det forstår jeg ikke, hvilken Windows bruger du?
Skrevet ons. d. 20. august 2003 kl. 01:14:46| #9
Jeg kan godt lave et script der fjerner de sidste 6 karakterer fra hver linie, men det kræver at for /F virker.
Der findes en lang række text-editorer (f.ex min egen) der kan lave en makro til at fjerne de sidste 6 karakterer fra hver linie.
Skrevet ons. d. 20. august 2003 kl. 01:15:42| #10
Just a little typeO.
koden virker nu men den skærer bare for meget væk.
Så vidt jeg forstår tager den de 4 første "ord" og gemmer dem, men nogle har kun fornavn & efternavn hvor der andre steder er firmanavn.
2. del indeholder nogle gange også flere tal koder.
Der for kan jeg ikke vide hvor mange "ord" der indgår i 1. & 2. del af hver streng.
Fælles er bare at de sidste 6 karaktere skal skæres væk.
Skrevet ons. d. 20. august 2003 kl. 01:21:50| #11
Prøv dette script:
@echo off
if [%1]==[] echo You must specify a input file& goto :eof
setlocal
for /F "delims=;" %%I in (%1) do call :do_it "%%I"
endlocal
goto :eof
:do_it
set xxx=%~1
set yyy=%xxx:~0,-6%
echo %yyy%
goto :eof
Du kalder det med: whatever.bat infile >outfile
Skrevet ons. d. 20. august 2003 kl. 01:24:10| #12
Du kan også erstatte for linien med:
for /F "tokens=*" %%I in (%1) do call :do_it "%%I"
Hvis nogen af linierne indeholder ;
Skrevet ons. d. 20. august 2003 kl. 01:36:29| #13
Det virker med scriptet
Der kommer bare fejl i linien hvor der forekommer & tegn
Skrevet ons. d. 20. august 2003 kl. 01:54:12| #14
Vi prøver igen:
@echo off
if [%1]==[] echo You must specify a input file& goto :eof
setlocal
for /F "tokens=*" %%I in (%1) do set uuu="%%I"& call :do_it
endlocal
goto :eof
:do_it
echo %uuu:~0,-6%
goto :eof
Skrevet ons. d. 20. august 2003 kl. 01:57:54| #15
Ups, jeg er vist for træt, der en " for meget med i starten af linien.
Skrevet ons. d. 20. august 2003 kl. 02:01:49| #16
Jeg kan ikke lige nu finde en metode der virker med &
Skrevet tor. d. 21. august 2003 kl. 20:28:41| #17
Jeg kan stadig ikke finde en metode der kan virke med &
Måske skulle jeg lave et 7 liniers C-program til dig?
Skrevet tor. d. 21. august 2003 kl. 20:53:20| #18
Det siger jeg da ikke nej tak til.
Skrevet tor. d. 21. august 2003 kl. 23:55:22| #19
Jeg har nu lavet et program, kaldet striblast6.exe Det bruges sådan:
striblast6 <file.in > file.out
Bemærk at linier på mindre end 6 karakterer vil blive ignoreret.
http://home20.inet.tele.dk/ (...)
Skrevet lør. d. 23. august 2003 kl. 10:46:23| #20
Jeg siger mange tak for hjælpen.
Skrevet lør. d. 23. august 2003 kl. 20:40:04| #21
Prøv at få fat i en ordentlig editor. Få tastetryk, og så er det ordnet. Jeg synes
det er noget bedre end at bruge 2 dage om det ;)
Skrevet lør. d. 23. august 2003 kl. 20:48:59| #22
Selv om man har en editor der kan gøre det med nogle få taste tryk, kan man hurtigt spare de 5 minutter det tager at skrive programmet.
Skrevet lør. d. 23. august 2003 kl. 21:00:47| #23
Jeps, og hvis man er så heldig eller kløgtig at installere Perl, kan man
også få det lille program korrekt i første forsøg *g* - sorry, jeg er i
drillehumør her til aften.
Skrevet søn. d. 24. august 2003 kl. 00:26:10| #24
Hvis ikke spørgsmålet var stillet i en script kategori, havde jeg startet med at lave programmet i C og sparet os alle for anelse tid.
Jeg vil mene at det er hurtigere at lave programmet i C end at lære perl ;-)
Skrevet fre. d. 01. april 2005 kl. 10:04:33| #25
hov dette spg. er vidst aldrig blevet lukket.
kan man nemt lave programmet om til at fjerne alt istedet for de første 20 karaterer af en linie.
Skrevet fre. d. 01. april 2005 kl. 20:54:31| #26
Ja, det kan man godt. Men hvis man fjerner alt er der ikke noget tilbage.
Er der noget jeg har misforstået?
Skrevet tir. d. 05. april 2005 kl. 20:04:36| #27
omformulering
bevare de første 20 karaktere og fjerne resten af linien.
Skrevet tir. d. 05. april 2005 kl. 23:01:01| #28
Jeg lavede en ny version:
http://home20.inet.tele.dk/ (...)Det kan begge dele. Du bruger det med:
truncfile offset source dest
Hvis offset er større en 0 vil den bevare de første offset karakterer og fjerne resten, hvis offset er mindre end 0 vil den fjerne de sidste offset karakterer.