alf Opublikowano Czwartek o 12:31 Zgłoś Opublikowano Czwartek o 12:31 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 Cytuj
Adam Klaczek Opublikowano 19 godzin temu Zgłoś Opublikowano 19 godzin temu Może wystarczy standardowe polecenie _FIND? Cytuj
dmatusz3 Opublikowano 18 godzin temu Zgłoś Opublikowano 18 godzin temu 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? Cytuj
alf Opublikowano 13 godzin temu Autor Zgłoś Opublikowano 13 godzin temu 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.22x na 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 ; 5 , 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 Cytuj
alf Opublikowano 13 godzin temu Autor Zgłoś Opublikowano 13 godzin temu 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 Cytuj
alf Opublikowano 13 godzin temu Autor Zgłoś Opublikowano 13 godzin temu 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 Cytuj
Adam Klaczek Opublikowano 13 godzin temu Zgłoś Opublikowano 13 godzin temu W razie czego - w ZWCAD 2026 _FIND pozwala na użycie symboli wieloznacznych: dmatusz3 1 Cytuj
alf Opublikowano 12 godzin temu Autor Zgłoś Opublikowano 12 godzin temu Kilka miesięcy temu kupiliśmy '2025 Cytuj
dmatusz3 Opublikowano 12 godzin temu Zgłoś Opublikowano 12 godzin temu 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.22x na 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 ; 5 , 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. Cytuj
Rekomendowane odpowiedzi
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ą.