• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak otrzymać listę z formatu z opisem

0 głosów
677 wizyt
pytanie zadane 24 marca 2025 w Systemy operacyjne, programy przez To tylko ja Nowicjusz (120 p.)
Witam.

Nie jestem informatykiem i jak mniemam stanąłem przed nieco niestandardowym problemem (chyba, że okaże się inaczej). Niestety nawet nie wiem jak wyszukac informacje na ten temat :(

Otrzymałem ponad 300 plików txt z listami proiduktów. Listy są numerowane. Wygląda to mniej więcej tak:

numer. Nazwa produktu
data
jakaś dana
jakaś dana
jakaś dana
jakaś dana

Różnej długości opis

To co potrzebuję uzyskać to format poniższy:

nazwa produktu+++data---

Czy istnieje jakaś szansa, by to zrobić automatycznie? Ręcznie to zajmie kilka tygodni :(

Z góry dziękuję za informację.
komentarz 24 marca 2025 przez mokrowski Mędrzec (159,000 p.)
Wydaje się to bardzo prosty problem. Ale jak zawsze diabeł siedzi w szczegółach. Opisz proszę dokładniej wymagania w stylu (uwaga, strzelam bo nie wiem dokładnie jaki jest problem więc opisuję co możesz zrobić):

Mam przykładowy plik:

abrakadabra0123.txt

W nim znajdują się dane:
---------------------------------------
323.Mała wykałaczka męska
2024-10-11 12:32:22
dane1
dane2
Wykałaczka męska, produkt wystawowy.
---------------------------------------

Chcę uzyskać nazwę pliku:
Mała_wykałaczka_męska+++2024-10-11-12:32:22.txt

Z zawartością:
---------------------------------------
dane1
dane2
Wykałaczka męska, produkt wystawowy.
--------------------------------------

Chcę wykonać pracę w systemie MS Windows, mam arkusz kalkulacyjny Excel, tu są 2 pliki z danymi zanonimizowanymi oraz 2 pliki wynikowe, przełożone ręcznie.

Proszę o opis jak mogę wykonać tę pracę lub oferuję XX PLN za jej wykonanie. Kontakt mojmail@mojadomena.pl
komentarz 24 marca 2025 przez To tylko ja Nowicjusz (120 p.)
Witam.

Chodzi o to by z pliku, w którym znajduje się różna ilość produktów w formacie, który podałem w poście, wyłonić jedynie nazwę produktu i datę (tylko rok) z dodatkowymi znakami (+++ między nazwą produktu i rokiem i --- na końcu). Reszta danych jest nieistona. Chodzi o to by się ich pozbyć, by zyskać czystą listę.

To co może byc ważne:

1. W jednym pliku znajduje się od 1-60 000 produktów.
2. Spacje czy odległości między danymi nie są takie same.
komentarz 24 marca 2025 przez To tylko ja Nowicjusz (120 p.)

@mokrowski, 

Czyli jeżeli mamy w jednym pliku powiedzmy trzy produkty:

numer. Nazwa produktu
data
jakaś dana
jakaś dana
jakaś dana
jakaś dana

Różnej długości opis

numer. Nazwa produktu
data
jakaś dana
jakaś dana
jakaś dana
jakaś dana

Różnej długości opis




numer. Nazwa produktu
data
jakaś dana
jakaś dana
jakaś dana

jakaś dana

Różnej długości opis

Zamienić to na :

nazwa produktu+++data---
nazwa produktu+++data---
nazwa produktu+++data---

komentarz 24 marca 2025 przez mokrowski Mędrzec (159,000 p.)
Tak jak napisałem. Zanonimizuj dane w plikach i je wystaw.
Co to znaczy zamienić? Chcesz mieć plik z wpisami:
nazwa produktu+++data---
nazwa produktu+++data---
nazwa produktu+++data---

Im precyzyjniej to opiszesz, tym szybciej Ci ktoś pomoże. No i nie napisałeś czy chcesz to robić sam, czy chcesz to zlecić.
komentarz 24 marca 2025 przez To tylko ja Nowicjusz (120 p.)
"Co to znaczy zamienić? Chcesz mieć plik z wpisami:
nazwa produktu+++data---
nazwa produktu+++data---
nazwa produktu+++data---"

Tak.

"Czy pliki o takich nazwach?"

Nie. Piszę o zmianie tego co znajduje się w pliku. Znajduje się tam lista z niepotrzebnymi danymi. A ja chce uzyskac listę z samymi nazwami i datą ze specjalnymi znakami.

"No i nie napisałeś czy chcesz to robić sam, czy chcesz to zlecić."

Chcę to zrobić sam.

A). Przede wszystkim otrzymac informację czy to się da zrobić automatycznie zamiast ręcznie.
B). Ewentualnie otrzymac informację jak to zrobić labo na jaki program zwrócić uwagę.

Próbowałem z OpenOffice Calc. Otworzyłem plik txt za pomocą tego programu. Można tam usunąć niepotrzebne wiersze czy kolumny. Problem tylko w tym, że niektóre opisy są długie. Co za tym idzie program wypluł, że nie jest wstanie załadowac wszystkiego. Z 20 000 produktów załadował 10 :( To już ręcznie szybciej to zrobię, po prostu kasując w notatniku :(
komentarz 24 marca 2025 przez mokrowski Mędrzec (159,000 p.)
A) Tak, da się to zrobić automatycznie. W OpenOffice Calc, będziesz jednak pisał program w jego Basicu lub PythonUno. Moim zdaniem, jeśli nie będziesz potrzebował takiej wiedzy w przyszłości, nie warto tego robić w tym narzędziu. Na pytanie "czy da się w OpenOffice Calc zrobić to bez programowania", odpowiedź brzmi nie.

B) Jest to łatwe do wykonania w dowolnym zestawie narzędzi do obróbki tekstu i programowania. Dla podejścia najbardziej surowego, to będą programy (pod choćby GNU/Linux) sed, grep, awk, bash. Dla podejścia nieco nowocześniejszego, Python czy inny język.

Moim zdaniem? Jeśli Twoim celem jest tylko rozwiązanie problemu, zleć to.
komentarz 24 marca 2025 przez To tylko ja Nowicjusz (120 p.)
Dziękuję za informacje.

1 odpowiedź

0 głosów
odpowiedź 25 marca 2025 przez TOWaD Mądrala (6,800 p.)

Jak zależy Ci na poprawności i bezbłedności to tak jak mówi @mokrowski lepiej zleć i to co podał to są profesjonalne porady

Jeżeli zależy ci na zabawie to i niekoniecznie chcesz się wyrobić w tych paru tygodniach to mogę poradzić jak nieprofesjonalista, nieproesionaliście.

1) Możesz zainstalować VSC wpisać w pole wyszukiwania wyrażenie regularne i zaznaczyć  wszystkie zaznaczenia Ctrl + Shift + L i skopiować do np notatnika.

2) Możesz użyć notepad++ by to  samo wykonać tylko w inny sposób.

O wszystko(jak zbudować wyrażenie regularne, i obsługę programu instalację to na YouTube) podpytasz AI ja używam Copilot, bo nie trzeba się logować.

O Miroslaw Zelent też podmieniał polskie znaki w odcinku o polskich znakach. To coś podobnego

Możesz obejrzeć pierwsze 7 odcinków C++ Miroslawa Zelenta i biblioteka Windows.h powinna wystarczyć, ale jak czegoś nie będziesz wiedział to podpytasz AI. Ja to na dyskusje pewnie czas będę miał dopiero w  niedzielę.

1
komentarz 25 marca 2025 przez TOWaD Mądrala (6,800 p.)
VSC silnie rekomenduję bo można to od razu zrobić w tych w 300 plikach, byleby się znalazły w tym samym workspace. A "Poeta Kodu" chyba miał film o wyrażeniach regularnych.
komentarz 25 marca 2025 przez To tylko ja Nowicjusz (120 p.)

@TOWaD,

Dziękuję za ten komentarz.
 

komentarz 27 marca 2025 przez TOWaD Mądrala (6,800 p.)
Tylko, rzadko  zdarza się, że przy bardziej skomplikowanych wyrażeniu regularnym,  było bezbłędnie. Często trzeba poprawiać i tak samo kodem. Dlaczego teorię zawsze dobrze znać.
komentarz 30 marca 2025 przez TOWaD Mądrala (6,800 p.)

I taki przykład bardzo niedoskonały

loren ipsum

wyszukiwanie

(^\d+\..*)[\s\S\r](\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2})[\s\S\r]*[^\d+\..*]

zastąpienie

$1+++$2---
<- tu enter przez shift+Enter

tekst przed

W nim znajdują się dane:
---------------------------------------
323. Mała wykałaczka męska
2024-10-11 12:32:22
dane1
dane2
Wykałaczka męska, produkt wystawowy.
---------------------------------------
323.

tekst po

W nim znajdują się dane:
---------------------------------------
323. Mała wykałaczka męska+++2024-10-11 12:32:22---

https://stackoverflow.com/questions/41150941/multi-line-regular-expressions-in-visual-studio-code

https://stackoverflow.com/questions/30351529/find-and-replace-with-a-newline-in-visual-studio-code

Jeszce raz miłej zabawy  z regex.

ps.

 std::string s = "Some people, when confronted with a problem, think "
        "\"I know, I'll use regular expressions.\" "
        "Now they have two problems.";

https://en.cppreference.com/w/cpp/regex

Podobne pytania

0 głosów
1 odpowiedź 227 wizyt
pytanie zadane 16 marca 2018 w C# przez Daria Kokot Początkujący (380 p.)
0 głosów
1 odpowiedź 4,768 wizyt
0 głosów
1 odpowiedź 1,350 wizyt

93,757 zapytań

142,716 odpowiedzi

323,363 komentarzy

63,353 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...