Att byta mellanslag mot tab

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
chille
Inlägg: 2469
Blev medlem: 25 juni 2003, 20:54:41
Ort: Stockholm
Kontakt:

Re: Att byta mellanslag mot tab

Inlägg av chille »

Jag förstår inte riktigt hur datan är uppstrukturerad. Om det är så att det alltid är minst två space som ska ersättas med tab, utan att påverka endast ett space, så är det ju bara köra en find and replace i textedit.

Kör en find and replace. Sök efter tre space och ersätt med två. Kör den proceduren om och om igen tills den inte hittar fler träffar. Sök sedan efter två space och ersätt med tab. För att kunna få in en tab i replace-rutan får du skriva en i textdokumentet och klippa och klistra med kringla+c och kringla+v. På så vis får du allt som är två space eller mer att bli en tab, utan att lämna någon skräpdata eller påverka enkel-space.

Annars finns det som sagt många bra verktyg med som standard i OS X, bland annat cut, awk, perl, sed, grep, egrep, med mera. "Bara" scripta ihop och köra! :mrgreen:
Användarvisningsbild
prototypen
Inlägg: 11107
Blev medlem: 6 augusti 2006, 13:25:04
Ort: umeå

Re: Att byta mellanslag mot tab

Inlägg av prototypen »

Så här ser rådata ut, en bit iaf men det gick inte alls att visa hur det ser ut för någonstans i Safari - över webben - till Forumet- förhandsgranskningen och tillbaka så är alla extra mellanslag borta.
Här när jag klippte in så såg det ut som vanligt.

Så här ser det ut från början
PnP rådata.jpg
Men över webben blev det så

*THIS FILE TO BE USED AS AN INPUT TO THE GENCAD CAD PRE-PROCESSOR
*FOR THE CIM WORKBENCH. A .CBF FILE IS PRODUCED, AND IS THEN LOADED
*INTO CIM VIA BOARD DATA. LIBRARY SHAPES ARE NOT NECESSARY, AND IF INCLUDED,
*MUST EXACTLY MATCH THOSE PRE-EXISTING IN THE CIMWORKBENCH

*
*
* CKT. Centroid
* PART NUMBER REF. X Y ROT 0.1d LIBRARY SIDE
* 1(37) 40(4) 46(4) 53(4) 62(4) 69(16) 85(10)

BAS 32L SOD80 #73 1785 -6109 ???? \F.BAS 32L SOD80 TOP

BAS 32L SOD80 #74 1785 -6809 ???? \F.BAS 32L SOD80 TOP

BAS 32L SOD80 #75 1785 -6609 ???? \F.BAS 32L SOD80 TOP

BAS 32L SOD80 #76 1785 -6409 ???? \F.BAS 32L SOD80 TOP

74HC132 #78 1790 -4424 3530 \F.74HC132 TOP

14C89 RS 232 mott #79 1790 -4054 3540 \F.14C89 RS 232 TOP

Jordning 0,6 mm #81 2865 -2335 ???? \F.Jordning 0,6 TOP

7805 ligg PTH #82 1900 -1587 3190 \F.7805 ligg PTH TOP

Wago 2-polig #115 3867 -1080 2900 \F.Wago 2-polig TOP

Wago 2-polig #116 2317 -1104 2880 \F.Wago 2-polig TOP

Jordning 0,6 mm #117 1775 -5035 ???? \F.Jordning 0,6 TOP

10 uF 16 V #119 1825 -2175 -0 \F.10 uF 16 V TOP

10 uF 16 V #120 2000 -2175 -0 \F.10 uF 16 V TOP

TO 223 BTS4140 #122 3166 -2645 2990 \F.TO 223 BTS414 TOP

Jordning 0,6 mm #124 2865 -7035 ???? \F.Jordning 0,6 TOP

47 K #126 2655 -1820 2890 \F.47 K TOP

#127 4175 -7400 -0 PADS 80 35 80 TOP


Alla blankrader skulle också varit borttagna, det gjorde visst inte så mycket med Excellarket blir ju dubbelt så stort.
Så här borde det se ut efter redigering, nu har jag visst tagit bort en uppgift för mycket ur varje rad men so what.


* CKT. Centroid
* 1(37) 40(4) 46(4) 53(4) 62(4) 69(16) 85(10)

*FOR THE CIM WORKBENCH. A .CBF FILE IS PRODUCED, AND IS THEN LOADED
*INTO CIM VIA BOARD DATA. LIBRARY SHAPES ARE NOT NECESSARY, AND IF INCLUDED,
*MUST EXACTLY MATCH THOSE PRE-EXISTING IN THE CIMWORKBENCH
*THIS FILE TO BE USED AS AN INPUT TO THE GENCAD CAD PRE-PROCESSOR

* PART NUMBER REF. X Y ROT 0.1d LIBRARY SIDE

10 uF 16 V 1825 -2175 0
10 uF 16 V 2000 -2175 0
10 uF 16 V 2010 -7694 0
10 uF 16 V 2659 -7820 0
10K 1955 -6095 0
MAX1489 1790 -4054 0
47 K 2655 -1820 0
74HC132 1790 -4424 0
74HC595 1790 -4859 0
74HC595 1780 -7274 0
BAS 32L SOD80 1785 -6209 0
BAS 32L SOD80 1785 -5609 0
BAS 32L SOD80 1785 -5809 0
BAS 32L SOD80 1785 -6009 0

Naturligtvis så verkar inte webben , detta forum stödja tab
Så en liten skärm cut
PnP.jpg
Att lägga upp filen på forumet och ta den tillbaka skulle underlätta det manuella arbetet men fortfarande en massa pyssel
Alla rader med jordning och PADS skulle också varit borttagna, iof om man sorterar raderna så går det fort att markera och radera.

Som jag gjort hittills in med rådata i kalkylark, sortera, så får jag alla som heter lika tillsammans.
klipper och in i ordbehandlingen markerar allt oväsentligt och raderar sedan det jobbniga att markera mellanslagen och slå dit TAB några gånger per rad :cry:

Men vilket drag det blev i en av mina trådar, det är sällan jag kommer upp i så många inlägg, så tack för er tid.

Protte
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
hcb
Moderator
Inlägg: 6008
Blev medlem: 23 februari 2007, 21:44:50
Skype: hcbecker
Ort: Lystrup / Uppsala
Kontakt:

Re: Att byta mellanslag mot tab

Inlägg av hcb »

Protte: har du tittat på någon av alla texteditorer som finna? På rak arm kommer jag på Smultron, TextWrangler och Alpha (superbra, men tyvärr rätt gammal numera). Jag är säker på att alla kan göra det du vill (i alla fall om jag fattat rätt).
Användarvisningsbild
AndLi
Inlägg: 18505
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Att byta mellanslag mot tab

Inlägg av AndLi »

Använd forumets code tag så blir texten inte förstörd av htmls tankar om flera mellanslag efter varandra... & tabbar

Kod: Markera allt

*THIS FILE TO BE USED AS AN INPUT TO THE GENCAD CAD PRE-PROCESSOR
*FOR THE CIM WORKBENCH. A .CBF FILE IS PRODUCED, AND IS THEN LOADED
*INTO CIM VIA BOARD DATA. LIBRARY SHAPES ARE NOT NECESSARY, AND IF INCLUDED,
*MUST EXACTLY MATCH THOSE PRE-EXISTING IN THE CIMWORKBENCH

*
*
*                                      CKT.   Centroid
*        PART NUMBER                   REF.   X      Y      ROT 0.1d  LIBRARY         SIDE
*           1(37)                     40(4)  46(4)  53(4)    62(4)   69(16)            85(10)

BAS 32L SOD80                          #73   1785   -6109    ????   \F.BAS 32L SOD80 TOP        

BAS 32L SOD80                          #74   1785   -6809    ????   \F.BAS 32L SOD80 TOP        

BAS 32L SOD80                          #75   1785   -6609    ????   \F.BAS 32L SOD80 TOP        

BAS 32L SOD80                          #76   1785   -6409    ????   \F.BAS 32L SOD80 TOP        

74HC132                                #78   1790   -4424    3530   \F.74HC132			    TOP        

14C89 RS 232 mott                      #79   1790   -4054    3540   \F.14C89 RS 232  TOP        

Jordning 0,6 mm                        #81   2865   -2335    ????   \F.Jordning 0,6  TOP        

7805 ligg PTH                          #82   1900   -1587    3190   \F.7805 ligg PTH TOP        

Wago 2-polig                           #115  3867   -1080    2900   \F.Wago 2-polig	 TOP        

Wago 2-polig                           #116  2317   -1104    2880   \F.Wago 2-polig	 TOP        

Jordning 0,6 mm                        #117  1775   -5035    ????   \F.Jordning 0,6  TOP        

10 uF 16 V                             #119  1825   -2175    -0     \F.10 uF 16 V			 TOP        

10 uF 16 V                             #120  2000   -2175    -0     \F.10 uF 16 V			 TOP        

TO 223 BTS4140                         #122  3166   -2645    2990   \F.TO 223 BTS414 TOP        

Jordning 0,6 mm                        #124  2865   -7035    ????   \F.Jordning 0,6  TOP        

47 K                                   #126  2655   -1820    2890   \F.47 K			       TOP        

                                       #127  4175   -7400    -0     PADS	80	35	80    TOP        


Alla blankrader skulle också varit borttagna, det gjorde visst inte så mycket med Excellarket blir ju dubbelt så stort.
Så här borde det se ut efter redigering, nu har jag visst tagit bort en uppgift för mycket ur varje rad men so what.


*                                      CKT.   Centroid
*           1(37)                     40(4)  46(4)  53(4)    62(4)   69(16)            85(10)

*FOR THE CIM WORKBENCH. A .CBF FILE IS PRODUCED, AND IS THEN LOADED
*INTO CIM VIA BOARD DATA. LIBRARY SHAPES ARE NOT NECESSARY, AND IF INCLUDED,
*MUST EXACTLY MATCH THOSE PRE-EXISTING IN THE CIMWORKBENCH
*THIS FILE TO BE USED AS AN INPUT TO THE GENCAD CAD PRE-PROCESSOR

*        PART NUMBER                   REF.   X      Y      ROT 0.1d  LIBRARY         SIDE

10 uF 16 V	1825	-2175	0
10 uF 16 V	2000	-2175	0
10 uF 16 V	2010	-7694	0
10 uF 16 V	2659	-7820	0
10K	1955	-6095	0
MAX1489	1790	-4054	0
47 K	2655	-1820	0
74HC132	1790	-4424	0
74HC595	1790	-4859	0
74HC595	1780	-7274	0
BAS 32L SOD80	1785	-6209	0
BAS 32L SOD80	1785	-5609	0
BAS 32L SOD80	1785	-5809	0
BAS 32L SOD80	1785	-6009	0
Användarvisningsbild
Noxin
Inlägg: 614
Blev medlem: 21 september 2006, 11:59:45
Ort: Stockholm, Årsta + Orrefors

Re: Att byta mellanslag mot tab

Inlägg av Noxin »

sodjan skrev:> WordPad och NotePad i Windows klarar det galant.

Det är väldigt märkligt hur du kan vara så tvärsäker utan att ens
ha sett ett exempel på filen/datat! Och med *dom* verktygen...
Han sa ju att det var mellanslag han ville byta ut. Det klarar WP och NP fint.
Det kanske var lite förhastat att anta att mellanslag inte skulle vara något annat än windowsdator-space-tangent-mellanslag.
Användarvisningsbild
prototypen
Inlägg: 11107
Blev medlem: 6 augusti 2006, 13:25:04
Ort: umeå

Re: Att byta mellanslag mot tab

Inlägg av prototypen »

Men det är ju en hel radda med mellanslag som ska bytas mot en tab
sodjan
EF Sponsor
Inlägg: 43256
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Att byta mellanslag mot tab

Inlägg av sodjan »

Om det nu är fasta postioner (kör gärna med code-taggarna på originaldatat)
så fixar vilket script-verktyg som helst detta. Vi vet ju inte vad du har
tillgång till.

Perl är bra på denna typ av processering, men det har en
väldigt brant uppförsbacke innan man hanterar syntaxen.

Python skulle också fixa det. Lite mer "normalt" språk.

Olika scriptverktyg i applikationer (Office, UltraEdit o.s.v) kan också fixa det.

> Ja, ett unixverktyg, det bör finnas med i OSX

Aha! :-)
Jaha, det var visst insmyget ett "Går det köra i Maccen är det fördelaktigt" i
förstainlägget ! :-) Ja då blir kanske urvalet av applikationer/verktyg ett annat...

> Han sa ju att det var mellanslag han ville byta ut. Det klarar WP och NP fint.

Han sa också att det även förekommer mellanslag i själva datat. Det gör
processen mer komplex. Hur som helst, det finns ingen som helst anledning
att förslå en lösning innan man har sett rådatat! Enbart onödigt.

För övrigt så behöver man även en "efter" fil för att få hela bilden.
D.v.s hur önskar man att det ska se ut ? Det kanske var med
i inlägget lite tidigare, det var lite rörigt... :-)

> Men det är ju en hel radda med mellanslag som ska bytas mot en tab

Nu så är det ju positionsbundet, så ja föreslår att man utnyttjar det och
fixar ett verktyg som jobbar med fasta positioner.

Men , eftersom det är fasta postitioner så kan man även importera i Excel
genom att markera var de olika fälten startar/slutar i posterna. D.v.s utan
att köra med en speciell "avgränsare". Har du testat det? Eller är det
speciella krav från inläsningen i "Pick and place maskinen"? I så fall
behöver vi alltså veta vilka dessa krav är.
Användarvisningsbild
mrOh
EF Sponsor
Inlägg: 541
Blev medlem: 6 mars 2005, 13:54:31
Ort: Bromma

Re: Att byta mellanslag mot tab

Inlägg av mrOh »

Är du ok med att gå in och göra en manuell manöver i filen så bör det gå att göra snabbt med column editing som Tex textMate har, inbillade mig att du körde mac, men det finns i notepad++ och liknande också tror jag.

Vad jag menar:
Nerre
Inlägg: 27357
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Att byta mellanslag mot tab

Inlägg av Nerre »

Om det bara är i "tabbpositionerna" som det förekommer mer än ett mellanslag i följd så är det ju ganska enkelt.

Jag skulle börja med ett ersätta alla sekvenser av tre mellanslag med två mellanslag. Det upprepas tills det inte görs flera ersättningar. Sen ersätter man alla sekvenser av två mellanslag med en tab.

Om det program man jobbar i klarar av det så kan man såklart ersätta "två eller flera mellanslag" direkt med en tab.

Detta går att lösa med sed eller perl (som i princip använder sed-syntax).

Om det däremot kan förekomma två eller flera mellanslag i datat så måste man ta något som räknar teckenpositioner. Jag är lite osäker på om awk klarar det... jag skulle nog ha skrivit ett simpel program i C... men det är jag det:)
sodjan
EF Sponsor
Inlägg: 43256
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Att byta mellanslag mot tab

Inlägg av sodjan »

> Om det däremot kan förekomma två eller flera mellanslag i datat...
> Om det bara är i "tabbpositionerna" som det förekommer mer än ett mellanslag i följd

Två viktiga *om* som gör att det hela faller utan att veta mer om datat.

Jag ser inget som hindrar att det varken är multipla mellanslag inom ett
fält eller att två fält avgränsas med enbart ett mellanslag, eller inget alls!
Mellanslag är ju formellt ingen avgränsare här!

Om det nu *är* ett fixed-format format så tycker jag att
man ska utgå från det när man läser posterna.
Användarvisningsbild
Retroperra
Inlägg: 728
Blev medlem: 8 juli 2012, 14:34:12
Ort: Sundsvall
Kontakt:

Re: Att byta mellanslag mot tab

Inlägg av Retroperra »

prototypen skrev:Bara ett litet problem, jag får en lista ur mitt CAD program där all data är separerad med mellanslag.
Pick and place maskinen får då inget vettigt ur listan, den ska gå att få in i ett kalkylark (Excell)
Mina ordbehandlingsprogram kan inte ersätta mellanslag.

Ladda hem TextWrangler, det är en rikigt bra gratis editor. Jag har kör med storebrorsan BBEdit sedan många år.
1) Ersätt alla trippla mellanslag med dubblamellanslag
2) Fortsätt med det till du inte har några trippla kvar.
3) Ersätt dubbla mellanslag med \t som är tab
4) Klart


Det borde gå att skriva ett applescript som kör det automagiskt.

Det går som sagt att skriva ett unixscript som kört i terminalen men så kan ev ÅÄÖ nånstans fippla tilldet så det blir fel. Håll dig till UTF8 så ska det funka bra.


//Per
sodjan
EF Sponsor
Inlägg: 43256
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Att byta mellanslag mot tab

Inlägg av sodjan »

De där spricker redan med de fåtal rader som har visats som exempel!
Var och en som kollar tidigare inlägg ser ju det direkt...
Jag vidhåller att det ända som är vattentätt är ett script
som läser positionsstyrt från filen.

En annan sak...
Jag skulle först vilja veta vilka delimiters som pick-n-place systemet
accepterar. Är det enbart <tab>? Det är ingen bra delimiter, den är
svårediterad och ställer ofta till formatet när man visar filen.
Användarvisningsbild
Retroperra
Inlägg: 728
Blev medlem: 8 juli 2012, 14:34:12
Ort: Sundsvall
Kontakt:

Re: Att byta mellanslag mot tab

Inlägg av Retroperra »

De där spricker redan med de fåtal rader som har visats som exempel!
Fast jag får det att funka så bra ;)

Var finns en representativ fil?
Så ska det nog gå att få ihop nåt som hjälper åtminstone en bit på vägen.

//P
Maalobs
Inlägg: 1304
Blev medlem: 3 februari 2005, 14:35:15
Ort: Stockholm

Re: Att byta mellanslag mot tab

Inlägg av Maalobs »

prototypen skrev:Skriva script är inte min starka sida men det finns en möjlighet där, tror att det är flera mellanslag som ska ersättas med tab, i mina komponentnamn är det bara ett.
Om du vill byta ut varje sekvens av "2 eller flera mellanslag" till ett tab-tecken, då får man använda det som kallas quantifiers i regular expressions:

Kod: Markera allt

perl -wpe 's! {2,}!\t!g' inputfile.txt > outputfile.txt
prototypen skrev:Med alla mellanslagen blir det raka kolumner.
Är det ett krav att det ska förbli så efteråt också?
Då måste du bestämma hur långt ditt tab-avstånd är, och ersätta lika många mellanslag i följd till ett tab-tecken.
Här med exemplet 4 mellanslag i följd:

Kod: Markera allt

perl -wpe 's! {4}!\t!g' inputfile.txt > outputfile.txt
Användarvisningsbild
ylle
Inlägg: 669
Blev medlem: 5 oktober 2006, 20:18:27
Ort: örebro

Re: Att byta mellanslag mot tab

Inlägg av ylle »

Det är längesen jag körde liknande men det finns ett kommande som heter tr http://linux.about.com/library/cmd/blcmdl1_tr.htm
Med --squeeze-repeats borde du kunna byta ut alla mellanslag som är 2 eller mer efter varann till ett enkelt eller en tab

Sen finns awk som är lite svårare att använda men som går att göra nästan vad du vill med.
Skriv svar