You are here: PSPad forum > České diskuzní fórum > Nalezení dvou sousedících řádků se stejným začátečním dvojčíslím

Nalezení dvou sousedících řádků se stejným začátečním dvojčíslím

#1 Nalezení dvou sousedících řádků se stejným začátečním dvojčíslím

Posted by: Beklar | Date: 2025-10-16 14:50 | IP: IP Logged

Omlouvám se, pokud jde o hloupou otázku, ale nebyla jsem schopna najít odpověď, je prosím v PSPadu možné najít případy, kdy po sobě bezprostředně následují řádky začínající stejným dvouciferným číslem? Např. kdybych hledala v následujícím textu sousedící řádky začínající "01",

01: ^nSanitární noc^pDivadelní podívaná o dvou částech
01: ^podehrává se v první polovině let osmdesátých
02: a
06: ^kPavel^pLandovský
07: ^agru^bobálka^k[Hana^pHamplová]
07: ^agru^bvazba^k[Jan^pOutrata]
40: ^m[Praha]^nKrameriova expedice^d[1978]
44: ^sPatitul, frontispis, 125 s.^r21 cm
46: ^xNa titul. listě uveden vznik: prosinec <1976>. - Signováno autorem.
47: ^t[13] výt.
53: ^n63
56: ^jHamplová, Hana gru
56: ^jOutrata, Jan gru

chtěla bych, aby mě program nějakou formou navedl na tyto dva řádky:

01: ^nSanitární noc^pDivadelní podívaná o dvou částech
01: ^podehrává se v první polovině let osmdesátých

Z příkladu možná není patrný můj problém, ale záznamů podobných tomu výše mám v jednom texťáku asi padesát tisíc a zajímají mně případy opakování některých polí v témže bibliografickém záznamu, tj. přímo sousedící řádky se stejným uvozujícím číslem.

Dalo by se toho, prosím, nějak dosáhnout? Při tomhle počtu nemohu prostě scrollovat daty a snažit se to vykoukat.

Options: Reply | Quote | Up ^


#2 Re: Nalezení dvou sousedících řádků se stejným začátečním dvojčíslím

Posted by: pspad | Date: 2025-10-16 14:55 | IP: IP Logged

Rozumím, ale PSPad samotný tohle neumí.
Šlo by to vyřešit přes skriptování.
Jakým způsobem by měl na řádky "navést"? Najít od pozice kurzoru další následující výskyt takových řádků?

Options: Reply | Quote | Up ^


#3 Re: Nalezení dvou sousedících řádků se stejným začátečním dvojčíslím

Posted by: MichalKarlik | Date: 2025-10-16 16:42 | IP: IP Logged

Dobrý den,

napadla mne "alternativní" strategie. Nahrát řádky do Excelu, pomocí funkce LEFT = ZLEVA vyseparovat první dva znaky zleva a použít funkci "Podmíněné formátování", "Pravidla zvýraznění buněk", "Duplicitní hodnoty".

Tím se buňky s duplicitami zvýrazní odlišnou barvou.

Pozdravuje Michal Karlík

Options: Reply | Quote | Up ^


#4 Re: Nalezení dvou sousedících řádků se stejným začátečním dvojčíslím

Posted by: vbr | Date: 2025-10-16 23:12 | IP: IP Logged

Beklar:
...
je prosím v PSPadu možné najít případy, kdy po sobě bezprostředně následují řádky začínající stejným dvouciferným číslem? Např. kdybych hledala v následujícím textu sousedící řádky začínající "01",

01: ^nSanitární noc^pDivadelní podívaná o dvou částech
01: ^podehrává se v první polovině let osmdesátých
...

Zdravím,
toto vyžaduje podporu víceřádkového vyhledávání, které bohužel nyní PSPad nemá, jde to zpracovat skriptováním,
např. pro můj starobylý skript
vbr.wz.cz:8080

by to mohla být vyhledávací fráze:

/\r\n(\d\d: ).*\n\1/g

tak se zvýrazní celý první řádek a stejné dvojčíslí na začátku dalšího řádku (výraz jde upravit i na jiný záběr).

Pokud se zamýšlí nějaké jednotné zpracování (nahrazení...) takto nalezených dvojřádků, hodil by se asi jednoúčelový skript přímo na to.

Jinak pro samotné prohledávání dvojřádků se stejnými číselnými začátky je asi jednodušší použít editor s víceřádkovým hledáním/nahrazováním a podporou regulérních výrazů,
např. pro Notepad++ (omlouvám se za konkurenční odkaz) by to mohl být výraz:

^(\d\d: ).*\r\n\1

vbr

Options: Reply | Quote | Up ^


#5 Re: Nalezení dvou sousedících řádků se stejným začátečním dvojčíslím

Posted by: Beklar | Date: 2025-10-17 10:33 | IP: IP Logged

Ad:
Rozumím, ale PSPad samotný tohle neumí.
Šlo by to vyřešit přes skriptování.
Jakým způsobem by měl na řádky "navést"? Najít od pozice kurzoru další následující výskyt takových řádků?
Windows software tools

Ano, kdyby navedl kurzor na další okurenci, to by úplně stačilo.

Edited 1 time(s). Last edit at 2025-10-17 10:34 by Beklar.

Options: Reply | Quote | Up ^


#6 Re: Nalezení dvou sousedících řádků se stejným začátečním dvojčíslím

Posted by: pspad | Date: 2025-10-20 04:52 | IP: IP Logged

Následující kód ulozte do souboru ve slozce PSPADU:
.\Script\VBScript\SameLineStart.vbs

V nastavení programu / System
povolte skriptování, pokud není

Nově v menu skript by se měla objevit položka Same line start s klávesovou zkratkou Alt+F. Jméno i zkratku si upravte dle libosti v posledním řádku skriptu.

Skript hledá a porovnává text na začátku řádku před dvojtečkou


const module_name = "LinesSameStart" 'this name must be unique !!!
const module_desc = "Find lines with same start" 'script description
const module_ver = "1.00" 'version

sub SLS
set obj1 = newEditor() 'new editor object
obj1.assignActiveEditor() 'assign active editor
dim s
dim s1
dim y
y = obj1.CaretY 'start line
obj1.CaretY(y) 'set cursor to line number i
s1 = Split(obj1.lineText(), ":")(0) 'read line content to variable
for i = y + 1 to obj1.linesCount() 'go through lines in editor
obj1.CaretY(i) 'set cursor to line number i
s = Split(obj1.lineText(), ":")(0) 'read line content to variable
if s1 = s then
exit for
else
s1 = s
end if
next
end sub

' name "Init" is required, its called automatically during initialization to create menu items
sub Init
addMenuItem "Same line start","", "SLS", "Alt+F"
end sub

Edited 1 time(s). Last edit at 2025-10-20 04:53 by pspad.

Options: Reply | Quote | Up ^






Editor PSPad - freeware editor, © 2001 - 2025 Jan Fiala, Hosted by Webhosting TOJEONO.CZ, design by WebDesign PAY & SOFT, code Petr Dvořák, Privacy policy and GDPR