Re: LOADW ja tekstikappaleet pitkinä riveinä

[vastaus aiempaan viestiin]

Kirjoittaja: Seppo Mustonen
Sähköposti:    -
Päiväys: 1.9.2002 18:51

Kimmo esitti toivomuksenaan lisäystä LOADP:n (LOADW:n) SPLIT-
optioihin, jotta Windows-ohjelmien tuottamat rivinsiirrottomat
tekstitiedostot saisi lohkottua mielekkäästi toimituskentän riveiksi
sanavälien kohdalta.

Olen nyt toteuttanut tuon laajennuksen seuraavasti ja siten, että
myös Windowsin leikepöydästä saadaan LOADW-komennolla siirrettyä
tavaraa Survon toimituskenttään samoin optioin.

Menetellään näin:

Toiminnan esittelemiseksi synnytetään koetiedosto KOE.TXT:

SAVEW CUR+1,CUR+5,KOE1.TXT
ESIMERKKI: Tässä on koetekstiä, joka sisältää muutamia rivejä. Tämä
teksti talletetaan yllä olevalla SAVEW-komennolla tekstitedostoon
KOE1.TXT. Tämän jälkeen "lavastetaan" tilanne, joka vastaa tyypillisten
Windows-ohjelmien tuotosta eli poistetaan TXTCONV-komennolla kaikki
rivinsiirrot. ESIMERKKI PÄÄTTYY.

Tehdään tiedostosta KOE1.TXT rivinsiirroton versio KOE.TXT:
TXTCONV KOE1.TXT,KOE.TXT / Rivinsiirrot korvataan sanavälillä!
CONVERSIONS:
R  char(10) char(32)
D  char(13)
END

Loppuun täytyy kuitenkin lisätä yksi rivinsiirto:
COPY CUR+1,CUR+1 TO KOE.TXT

COPY-komennon alla olevan rivin tulee olla tyhjä.
Lavastus on valmis!
.......................................

Jos nyt yrittää aktivoida komennon
LOADW KOE.TXT
tulee virheilmoitus liian pitkistä riveistä ja kehotus käyttää
jotain vaihtoehtoisista SPLIT-täsmennyksistä.
.......................................
Uutena vaihtoehtona on seuraava:
LOADW KOE.TXT,CUR+3 / SPLIT=SP (vaihda riviä SPace-merkkien kohdalta)
              CUR+3 siirtää tulostuksen 3 riviä eteenpäin.
---------------------------
ESIMERKKI: Tässä on koetekstiä, joka sisältää muutamia rivejä. Tämä
teksti talletetaan yllä olevalla SAVEW-komennolla tekstitedostoon
KOE1.TXT. Tämän jälkeen "lavastetaan" tilanne, joka vastaa tyypillisten
Windows-ohjelmien tuotosta eli poistetaan TXTCONV-komennolla kaikki
rivinsiirrot. ESIMERKKI PÄÄTTYY.
---------------------------
Tulos vastaa siis nyt täysin alkuperäistä tilannetta.

Rivinpituutena on Survon pääikkunan leveys mutta rivinpituutta voi
myös kasvattaa tai lyhentää.
Rajoittaminen 40:een tapahtuu näin:
LOADW KOE.TXT,CUR+2 / SPLIT=SP,40
---------------------------
ESIMERKKI: Tässä on koetekstiä, joka
sisältää muutamia rivejä. Tämä teksti
talletetaan yllä olevalla
SAVEW-komennolla tekstitedostoon
KOE1.TXT. Tämän jälkeen "lavastetaan"
tilanne, joka vastaa tyypillisten
Windows-ohjelmien tuotosta eli
poistetaan TXTCONV-komennolla kaikki
rivinsiirrot. ESIMERKKI PÄÄTTYY.
---------------------------

Ääritapauksena on seuraava, josta saattaa olla hyötyä silloin kun
halutaan katsella asiaa "merkki merkiltä":
(Huom. "liian pitkät sanat" paloitellaan armotta!)
LOADW KOE.TXT,CUR+2 / SPLIT=SP,1
---------------------------
E
S
I
M
E
R
K
K
I
:

T
ä
s
... jne.
---------------------------
.......................................................................

LOADW-komennolla voi nyt poimia samoin vaihtoehdoin tekstiä
myös Windowsin leikepöydästä toimituskenttään.
Tämän kokeilemiseksi olen siirtänyt tiedoston KOE.TXT sisällön Wordiin
ja vienyt koko tekstin siellä leikepöytään.

Leikepöydän sisältämän tekstin voi nyt kopioida seuraavasti:
LOADW CLIPBOARD,CUR+2 / SPLIT=SP
---------------------------
ESIMERKKI: Tässä on koetekstiä, joka sisältää muutamia rivejä. Tämä
teksti talletetaan yllä olevalla SAVEW-komennolla tekstitedostoon
KOE1.TXT. Tämän jälkeen "lavastetaan" tilanne, joka vastaa tyypillisten
Windows-ohjelmien tuotosta eli poistetaan TXTCONV-komennolla kaikki
rivinsiirrot. ESIMERKKI PÄÄTTYY.
---------------------------

Siis CLIPBOARD-parametrilla LOADW siirtää tiedot leikepöydästä.
Jos samaa yrittää pehmonapilla p (=paste), teksti sulloutuu toimitus-
kentässä vain yhdelle riville ja vuotaa kentästä ulos, ellei rivin-
pituus ole riittävä.
Riippuu tilanteesta, käytetäänkö tätä uutta keinoa vai painiketta p.
Uusi keino on suosiollinen puhtaitten tekstien siirrossa, p-nappula
taas mm. taulukkoja käsiteltäessä.

Koska komennon perusmuodon
LOADW CLIPBOARD / SPLIT=SP
kirjoittaminen on hiukan vaivalloista, sen voi tietenkin määritellä
makroksi tai vaihtoehtoisesti sukrona P

TUTSAVE <Survo>\U\S\P
{tempo -1}{init}{ref}{line start}{ins line}
LOADW CLIPBOARD / SPLIT=SP{act}
{del line}{ref}{ref}{tempo +1}{end}

jolloin tuon komennon korvaa 3 painallusta: F2 M P

Nämä laajennukset tulevat olemaan mukana SURVO MM:n versiosta 1.25
eteenpäin.

- Seppo

Vastaukset:
[ei vastauksia]

Survo-keskustelupalstan (2001-2013) viestit arkistoitiin aika ajoin sukrolla, joka automaattisesti rakensi viesteistä (yli 1600 kpl) HTML-muotoisen sivukokonaisuuden. Vuoden 2013 alusta Survo-keskustelua on jatkettu entistäkin aktiivisemmin osoitteessa forum.survo.fi. Tervetuloa mukaan!

Etusivu  |  Keskustelu
Copyright © Survo Systems 2001-2013. All rights reserved.
Updated 2013-06-15.