You are here: PSPad forum > České diskuzní fórum > Re: Kopírování sloupcového bloku do textu.

Re: Kopírování sloupcového bloku do textu.

#1 Kopírování sloupcového bloku do textu.

Posted by: ern | Date: 07/17/2018 10:51 | IP: IP Logged

Ať dělám co dělám, nemohu vložit vybraný sloupcový blok do textu v režimu
<OVERTYPE>. Vždy dochází k odsunutí textu pod blokem doprava.
V HELpu jsem nic nenašel, nebo jsem slepý?!
Díky za radu.

Options: Reply | Quote | Up ^


#2 Re: Kopírování sloupcového bloku do textu.

Posted by: vbr | Date: 07/18/2018 09:58 | IP: IP Logged

ern:
Ať dělám co dělám, nemohu vložit vybraný sloupcový blok do textu v režimu
<OVERTYPE>. Vždy dochází k odsunutí textu pod blokem doprava.
V HELpu jsem nic nenašel, nebo jsem slepý?!
Díky za radu.

Zdravim, prepisovaci rezim myslim ovlivnuje jen vstup z klavesnice, ne vkladani ze schranky (nezavisle na typu bloku).
pro nahrazeni je treba vybrat odpovidajici segment textu, ktery se ma nahradit obsahem schranky.

vbr

Options: Reply | Quote | Up ^


#3 Re: Kopírování sloupcového bloku do textu.

Posted by: pspad | Date: 07/18/2018 10:08 | IP: IP Logged

Přesně tak. Aby se sloupcový blok dal vložit jako sloupcový, musí být jako sloupcový zkopírován do schránky

Options: Reply | Quote | Up ^


#4 Re: Kopírování sloupcového bloku do textu.

Posted by: ern | Date: 07/19/2018 07:41 | IP: IP Logged

Díky za reakci,
Nicméně..
Jsem především výpočtář a často zpracovávám v rámci přípravy vstupních data velký objem znakových matic. Představte si, že máte soubor, ve kterém jsou desítky matic a část (nebo i všechny) potřebujete modifikovat ve smyslu přepsání určité oblasti-submatice jinou submaticí, stejnou pro všechny matice souboru, kterých se to týká.
Dosud jsem pracoval s ED4W-editorem, který je pro výpočtáře(a nejen pro ně) naprosto skvělý. Bohužel přechodem na x64 platformu jsem se musel služeb tohoto editoru vzdát. Firma ´Soft As It Gets´asi skončila a poslední verze z roku 2007 pracuje pouze na x32(do WVista).Nyní hledám náhradu, PSPad se mi docela zamlouvá, až na ty,dle mého, nešťastné blokové operace.
Zkráceně, ED4W fungoval asi takto:

1.Předpokládejme, že nová-modifikační submatice jako sloupcový blok je už ve schránce.
2.Kurzorem se najede na první tj.(1,1) prvek modifikované submatice.
3.V režimu OVERTYPE dáte Ctrl-V a je vymalováno.
4.Body 2,3 se opakují podle potřeby(počtu modifikovaných matic v souboru) a
za chvilku je hotovo.
Představa,že před každým vložením modifikační submatice, budu muset v modifikované matici pokaždé ještě vyznačovat oblast vložení(místo jenom prvku (1,1))mne doslova děsí. Vždyť vše je přeci jednoznačně dáno rozměrem sloupcového bloku ve schránce a označenou (první) pozicí v měněném textu.
Proč to dvojí označování bloku a oblasti vložení?
Díky za Váš názor.
S pozdravem
ern.

Options: Reply | Quote | Up ^


#5 Re: Kopírování sloupcového bloku do textu.

Posted by: pspad | Date: 07/19/2018 11:10 | IP: IP Logged

Rozumim, zkusim se podívat, co by se s tím dalo dělat.

Options: Reply | Quote | Up ^


#6 Re: Kopírování sloupcového bloku do textu.

Posted by: vbr | Date: 07/19/2018 14:16 | IP: IP Logged

Zdravim,
v jednoduche podobe by slo takovy zpusob vkladani osetrit skriptem, napr. nasledujici skript (pri aktivovanem WSH v Nastaveni: Integrace do systemu) lze ulozit na do adresare skriptu, a po vyvolani Skripty: Rekompilace skriptu by funkce mela byt dostupna v tomto menu a na zadanou klavesovou zkratku (nastavitelne ve funkci Init nize, musi byt unikatni, nepouzite jinou funkci editoru).

Quote:
//////////////////// ... PSPad\script\JScript\vloz_prepis.js //////////////////
var module_name = "InsertOver";
var module_ver = "1";

function vloz_ze_schranky_s_prepsanim_puvodniho(){
// vlozeni obsahu schranky od pozice kurzoru a prepsani

if (editorsCount()<1){return;}
var actEd = newEditor();
actEd.assignActiveEditor();

var textSchranky = getClipboardText();
var origCaretX = actEd.caretX();
var origCaretY = actEd.caretY();
var arrSchrankaPoRadkach = textSchranky.split("\r\n");

for (var i=0; i < arrSchrankaPoRadkach.length; i++){
var radkaSchranky = arrSchrankaPoRadkach[i];
actEd.setBlockBegin(origCaretX, origCaretY+i);
actEd.setBlockEnd(origCaretX + radkaSchranky.length, origCaretY+i);
actEd.selText(radkaSchranky);
}
}

function Init(){
addMenuItem("vložit ze schránku a přepsat", "", "vloz_ze_schranky_s_prepsanim_puvodniho","Ctrl+Q");
}

(Kod se asi nejspolehliveji z fora zkopiruje docasnym pouzitim "Citovat" a prevzetim z editacniho okna.)

Skript neobsahuje zadne overeni, napr. na blokovy charakter textu ve schrance a na existenci textu v pozicich pro prepsani - v takovych pripadech je vlozeny a pripadne prepsany text spise nezadoucim zpusobem; takove mezni pripady by bylo treba resit zvlast, podle pozadovaneho chovani.

Zdravim,
vbr

Options: Reply | Quote | Up ^






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