Hitta och matcha en serie nummer

Trädvy Permalänk
Medlem
Registrerad
Maj 2003

Hitta och matcha en serie nummer

Jag har en textfil där jag skulle vilja identifiera en viss nummerföljd per rad som är unik.
Finns det något enkelt sätt söka och matcha den här serien med något program?
Den måste kunna ignorera innehållet efter numret.

Exempel, kända serien ser exakt ut så här.

1 2 3 4

Hitta och matcha mot det här listan tex,

5 XKK 6 OSD 4 ABC 6 oFJS 1 SMK 2 OJKS 3 SFF 4 SFLS 6 SKF 3 OJIS 7 UIF 8 SOFJ

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2016

@Bozzeta:

Jag skulle kunna hjälpa dig.

Är det siffran i början som man ska söka efter eller är det den andra ska söka efter?

Skulle du kunna göra lite mer tex?

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Trädvy Permalänk
Medlem
Registrerad
Maj 2003

Varje rad inleds med en siffra, så det är själva siffran som hittas men det som är av intresse är den unika följden, alltså siffrorna 1, 2, 3, 4 i den följden.
Om det är enklare så kan du tänka dig ett excelark där
Kolumn 1, rad 1 innehåller värdet 1
Kolumn 1, rad 2 innehåller värdet 2
Kolumn 1, rad 3 innehåller värdet 3
Kolumn 1, rad 4 innehåller värdet 4
Ignorera all annan information i textdokumentet förutom denna följd.
Kan lite java, men tänkte om det finns något befintligt program som har lite mer avancerad sökfunktion.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2016
Skrivet av Bozzeta:

Varje rad inleds med en siffra, så det är själva siffran som hittas men det som är av intresse är den unika följden, alltså siffrorna 1, 2, 3, 4 i den följden.
Om det är enklare så kan du tänka dig ett excelark där
Kolumn 1, rad 1 innehåller värdet 1
Kolumn 1, rad 2 innehåller värdet 2
Kolumn 1, rad 3 innehåller värdet 3
Kolumn 1, rad 4 innehåller värdet 4
Ignorera all annan information i textdokumentet förutom denna följd.
Kan lite java, men tänkte om det finns något befintligt program som har lite mer avancerad sökfunktion.

Du vill bara söka efter den unika koden eller både och?

Ska du söka en i taget?

Edit: Jag gjorde denna lite snabbt den söker efter serienummer och sen så får du ut både siffran och serienummer.

https://minfil.org/kaI7wdb1b2/Bozzeta_matcha_serie_nummer.rar

File

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Trädvy Permalänk
Medlem
Plats
skåne
Registrerad
Jun 2004

Om du läser in filen som en sträng och sedan split på radbryt så får du en array med ett element för varje rad. Har du ett tomt element signalerar det en ny sekvens. Sen kan du köra en split till på varje element, fast på mellanslag och där välja första elementet vilket bör vara numret.
Eller kanske bara en startswith, men då får du träff på 13,21,37,43 också

Skickades från m.sweclockers.com

Oldschool [å:ldsku:l] adj. Användandet av datorprodukter som är äldre än 3 månader.

Trädvy Permalänk
Medlem
Registrerad
Maj 2003
Skrivet av superegg:

Du vill bara söka efter den unika koden eller både och?

Ska du söka en i taget?

Både och antar jag.
Det är ett gäng detektorer som har ett ID, dessa generar sedan en massa skräpkod efter namnet på dektorn (ID).
Det intressanta är dock följden i vilka detektorerna aktiverats.
Jag söker en viss följd där detektorerna aktiverats.

Skrivet av kundun:

Om du läser in filen som en sträng och sedan split på radbryt så får du en array med ett element för varje rad. Har du ett tomt element signalerar det en ny sekvens. Sen kan du köra en split till på varje element, fast på mellanslag och där välja första elementet vilket bör vara numret.
Eller kanske bara en startswith, men då får du träff på 13,21,37,43 också

Skickades från m.sweclockers.com

Detta är för avancerat för mig.
Det jag kan göra är att importera textfilen i excel och filtrera bort allt annat än själva ID.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2016
Skrivet av Bozzeta:

Både och antar jag.
Det är ett gäng detektorer som har ett ID, dessa generar sedan en massa skräpkod efter namnet på dektorn (ID).
Det intressanta är dock följden i vilka detektorerna aktiverats.
Jag söker en viss följd där detektorerna aktiverats.

Detta är för avancerat för mig.
Det jag kan göra är att importera textfilen i excel och filtrera bort allt annat än själva ID.

Update: https://minfil.org/laI8w8b1be/Bozzeta_matcha_serie_nummer_2.r... (plus källkod)

SN = Serienummer
N = Nummer

Denna söker efter nummer och serienummer finns två knappar hoppas att denna hjälper dig.

Du kan ändra texten i källkoden då jag skriver så där.

Förklara lite bättre än innan

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Trädvy Permalänk
Medlem
Registrerad
Maj 2003

Tack ska se om jag får ordning på det...

Trädvy Permalänk
Medlem
Plats
Järfälla
Registrerad
Jan 2004

Gjorde ett litet snabbt python skript baserat på formatet du specificerade. Går såklart att lösa på många sätt

fil.txt

5 XKK 6 OSD 4 ABC 6 oFJS 1 SMK 2 OJKS 3 SFF 4 SFLS 6 SKF 3 OJIS 7 UIF 8 SOFJ

find.py

import sys pattern = '1234' with open('fil.txt', 'r') as file: found = [] i = 0 r = 0 line = file.readline() while line and i < len(pattern): line = line.strip().split(' ') if len(line) > 1 and len(line[0]) == 1 and line[0] == pattern[i]: i += 1 found.append(line) else: i = 0 found = [] line = file.readline() r += 1 if found: print 'Found pattern starting on row %d' % (r-3) print found

$ python find.py Found pattern starting on row 6 [['1', 'SMK'], ['2', 'OJKS'], ['3', 'SFF'], ['4', 'SFLS']]

Eller hade du något specifikt språk du ville köra detta i?

Trädvy Permalänk
Medlem
Registrerad
Jan 2006

Går att lösa med hjälp av regex:
https://regex101.com/r/QWufyp/2

Trädvy Permalänk
Medlem
Registrerad
Maj 2003
Skrivet av trexake:

Eller hade du något specifikt språk du ville köra detta i?

Java är det jag känner till, men jag försökte köra ditt script men får följande fel.

File "find.py", line 26
print 'Found pattern starting on row %d' % (r-3)
^
SyntaxError: invalid syntax

Trädvy Permalänk
Medlem
Plats
Järfälla
Registrerad
Jan 2004
Skrivet av Bozzeta:

Java är det jag känner till, men jag försökte köra ditt script men får följande fel.

File "find.py", line 26
print 'Found pattern starting on row %d' % (r-3)
^
SyntaxError: invalid syntax

Jag körde python 2, antar att du kör python 3. tompa89's regex lösning fungerar också. Tror att syntaxen för python 3 ska vara:

print('blablabla')

Trädvy Permalänk
Medlem
Registrerad
Maj 2003
Skrivet av trexake:

Jag körde python 2, antar att du kör python 3. tompa89's regex lösning fungerar också. Tror att syntaxen för python 3 ska vara:

print('blablabla')

Coolt, fick det att fungera!
Ska försöka gräva ner mig lite mer i koden... var några år sedan jag programmerade något vettigt

Trädvy Permalänk
Medlem
Plats
Götet
Registrerad
Okt 2013

Om du ska jobba mycket med textsökningar så rekommenderar jag dig att lära dig Regex som nämdes ovan.

Skickades från m.sweclockers.com

Processor: Motorola 68000 | Klockfrekvens: 7,09 Mhz (PAL) | Minne: 256 kB ROM / 512 kB RAM | Bussbredd: 24 bit | Joystick: Tac2 | Operativsystem: Amiga OS 1.3

Trädvy Permalänk
Medlem
Plats
Linköping
Registrerad
Jun 2007

En annan lösning är att bara använda en textredigerare som kan söka med reguljäruttryck. I VIM så kan man t.ex. använda kommandot /^1.*\n2.*\n3.*\n4 för att söka efter en kolumn på första raden bestående av 1234. Då har man sen bara problemet att lära sig VIM

Trädvy Permalänk
Medlem
Registrerad
Maj 2003

Regex var riktigt najs.
tack för all hjälp!

Trädvy Permalänk
Forumledare
Registrerad
Okt 2002
Skrivet av perost:

Då har man sen bara problemet att lära sig VIM

Men vilket angenämt problem, sedan!

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2016

@Bozzeta:

Har du testat det programmet som jag gjorde till dig?

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666

Trädvy Permalänk
Medlem
Registrerad
Maj 2003
Skrivet av superegg:

@Bozzeta:

Har du testat det programmet som jag gjorde till dig?

Fick aldrig igång visualstudio som vägras att intallera.
https://social.msdn.microsoft.com/Forums/vstudio/en-US/18966e...

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2016
Skrivet av Bozzeta:

Fick aldrig igång visualstudio som vägras att intallera.
https://social.msdn.microsoft.com/Forums/vstudio/en-US/18966e...

Ligger annans en exe file som är redan compiler eller vad den kallas.

"\bin\Debug"

Man är inte dum för att man har stavproblem.
Läs mer om min synfel Visual Snow
Om mig ----> #16970666