Rekomendowane odpowiedzi

Opublikowano

kalkulator tekstów

Potrzebuję lispa do zmiany konkretnych wartości w tekstach, poprzez np. dodanie/odjęcie stałej wartości.

Mam pod ręką dwa lispy, z czego jeden robi świetną robotę dla pewnej grupy tekstów (mathtext) a drugi, nieco inny, działa, ale nie tak, jak ja bym chciała.

Tak więc mam dwa rodzaje tekstów (mono-textów w tym wypadku, choć )

1) tekst będący w całości liczbą, np 12.22

2) tekst zawierający w ciągu znaków alfanumerycznych tę liczbę, np "ab12, c1415, do końca 12.22"

Potrzebuję np. dodać do wybranych (wielu) liczb jakąś wartość, np. 0.25

a) w tekstach 1) stosuję lisp "mathtext", wyizolowuję pożądane teksty i zmieniam je wszystkie o zadaną wartość (nie tworzę nowych tylko zastępuję wartości)

b) analogicznie chciałabym to zrobić z tekstami 2), ale TextCalcV1-0 choć działa to nie tak jak lisp mathtext. Jest w nim natomiast pożądana funkcja wynajdowania ciągów liczbowych i wyboru właściwego ciągu.

przykład: z ciągu a-n "ab12, c1415, do końca 12.22" wyłowi 12, 1415 oraz 12.05 jako trzy liczby i pozwoli na wybór jednej z nich do dalszej do zmiany. I na tym kończy się jego użyteczność bo do zmiany potrzebuje tekstu wartości jaka mamy dodać/udjąć oraz wstawia nową wartość a nie zastępuje w tekście "ab12, c1415, do końca 12.22" pozycji "12.22" na "ab12, c1415, do końca 12.47"

TextCalcV1-0 ma jeszcze jedną wadę, brak możliwości ustawienia własnego zaokrąglenia, zaokrąglenie wstawia zgodnie z ustawieniami "units"

Czy ktoś mógłby się pochylić nad tym problemem?

 

mathtext.lsp TextCalcV1-0.lsp

Opublikowano

Chciałbym się upewnić.

Bo mamy taki ciąg "ab12, c1415, do końca 12.22

w jaki sposób można w nim znaleźć  

Cytat

12, 1415 oraz 12.05

Chyba, że to chodzi o 12.22.

I teraz po znalezieniu tych 3 liczb użytkownik ma wskazać jedną z liczb i dodać do wybranej inną liczbę (wpisaną za każdym razem z klawiatury czy zdefiniowaną na początku?). Dokładność ma być taka jak tej pierwszej znalezionej liczby czy taka jaką liczbę się wpisze?

Opublikowano

obrazowo tak to sobie wyobrażam:

1)  z ciągu np

s(df125,56<12.22x niezależnie od spacji czy innych znaków, wyciąga tylko liczby, w tym wypadku cztery s(df12;5,56<12.22x

12 5 56 i 12.22

możemy wygra ręcznie lub zadać kryterium (tylko liczby >12)

kalkulator zmienia tylko liczbę >12

2) alternatywa, wymagająca kilku kroków, ale chyba prostrza, bo wtedy wystarczył by lisp robiący rozbicie tego ciągu tekstowego s(df12;5,56<12.22na odcinki zawierające te liczby (przerwanie w miejscu gdzie cyfra zaczyna lub łączy się liczba ze znakiem innym niż liczba lub kropka): s(df 12 56 12.22 x

teraz możemy już wyłowić potrzebne nam liczby wg kryterium wielkości, wrzucić je na osobną warstwę, wyizolować i przeliczyć mathtext - em

3) Potem dla dopełnienia "dzieła" można by skleić z powrotem rozbite w drobny mak teksty, też stosując kryterium odległości między znakami (nie będą większe niż spacja) ale to co najpotrzebniejsze i bez sklejania mamy

 

Opublikowano
6 godzin temu, Adam Klaczek napisał:

Może wystarczy standardowe polecenie _FIND?

 

 

niestety nie wystarczy, bo to wiele liczb, ale każda ma inną wartość. Tak więc mathtext niezbędny

Opublikowano

i jeszcze jedno,

spacja też powinna być traktowana jako znak (ciąg znaków może zwierać spacje), więc podział odcinków nie powinien pomijać spacji, z wyjątkiem takim że spacje jako nie liczby powinny "znaleźć" się w odcinkach literowych

Opublikowano
Godzinę temu, alf napisał:

obrazowo tak to sobie wyobrażam:

1)  z ciągu np

s(df125,56<12.22x niezależnie od spacji czy innych znaków, wyciąga tylko liczby, w tym wypadku cztery s(df12;5,56<12.22x

12 5 56 i 12.22

możemy wygra ręcznie lub zadać kryterium (tylko liczby >12)

kalkulator zmienia tylko liczbę >12

2) alternatywa, wymagająca kilku kroków, ale chyba prostrza, bo wtedy wystarczył by lisp robiący rozbicie tego ciągu tekstowego s(df12;5,56<12.22na odcinki zawierające te liczby (przerwanie w miejscu gdzie cyfra zaczyna lub łączy się liczba ze znakiem innym niż liczba lub kropka): s(df 12 56 12.22 x

teraz możemy już wyłowić potrzebne nam liczby wg kryterium wielkości, wrzucić je na osobną warstwę, wyizolować i przeliczyć mathtext - em

3) Potem dla dopełnienia "dzieła" można by skleić z powrotem rozbite w drobny mak teksty, też stosując kryterium odległości między znakami (nie będą większe niż spacja) ale to co najpotrzebniejsze i bez sklejania mamy

 

Dziękuję, postaramy się coś zaproponować w przyszłym tygodniu.

  • dmatusz3 zmienił(a) tytuł na Kalkulator tekstów
  • 3 tygodnie później...
Opublikowano

Przepraszam ale dopiero teraz mogłam wrócić d ZWcada. 

Skrypt działa chyba dobrze z wyjątkiem jednej uciążliwości. Można przeliczać pojedyncze liczby natomiast nie można przeliczać całych grup od razu. To np dla przeliczenia paru tysięcy wartości jest nie możliwe do wykonania w ten sposób. Tak więc czy można zmienić sposób wyboru tj dodać wybór wielu (oknem i fence-m (literka "f" po wyborze komendy), oba wybory teraz nie działają)

image.thumb.png.ef25cd7101ee5f086c284b3ceec96987.png

Opublikowano (edytowane)

przetestowane

"mała" niedogodność, a z niej winikające milion razy klikanie. Chodziło mi o "grupowe" zmiany liczb w wielu tekstach.

Można teraz zaznaczyć całą grupę tekstów zawierających liczby, ale fajnie działa to dla tekstu jednoliczbowego, np "abc190.00"

W przypadku wieloliczbowego, np "a192.00* absc45.00 ; 12.00" klikać i tak trzeba pojedyncze liczby.

Może warto były by dorobić dodatkową opcję

a) "zmień wszystko"

oraz

b) zmień tylko liczby z zadanego zakresu, np większe niż 190 a mniejsze niż 300

Ponadto warto (ale nie narzucam się) też dorobić opcję "cofnij wszystkie zmiany". Teraz po zmianie np 1000 liczb cofniecie komendy calc to pilnowanie zapisania zmian przed uruchomieniem procedury i zamknięcie bez zapisywania zmian w celu powrotu do wartości sprzed zmian.

Edytowane przez alf

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie