alf Opublikowano wczoraj o 12:31 Zgłoś Opublikowano wczoraj 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 9 godzin temu Zgłoś Opublikowano 9 godzin temu Może wystarczy standardowe polecenie _FIND? Cytuj
dmatusz3 Opublikowano 8 godzin temu Zgłoś Opublikowano 8 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 3 godziny temu Autor Zgłoś Opublikowano 3 godziny 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 3 godziny temu Autor Zgłoś Opublikowano 3 godziny 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 3 godziny temu Autor Zgłoś Opublikowano 3 godziny 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 2 godziny temu Zgłoś Opublikowano 2 godziny temu W razie czego - w ZWCAD 2026 _FIND pozwala na użycie symboli wieloznacznych: dmatusz3 1 Cytuj
alf Opublikowano 2 godziny temu Autor Zgłoś Opublikowano 2 godziny temu Kilka miesięcy temu kupiliśmy '2025 Cytuj
dmatusz3 Opublikowano 2 godziny temu Zgłoś Opublikowano 2 godziny 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ą.