jedrek <wonzespamem@w.on> napisał(a):
Czym zawijać linie jak jakieś "opowiadanie" tekstowe jest jednym ciągiem
pisane?
Często gdy jakiś opis np. ze strony www się kopiuje i wkleja do
notatnika, to otrzymujemy całą treść w jednej długiej linii (nie chodzi
o to, że sobie włączę w notatniku funkcję automatyczne zawijanie
wierszy). Jest jakiś prosty darmowy automat, który nam z takiego
długiego tekstu zrobi tekst gdzie ładnie wstawi znak końca linii i zrobi
nam to "opowiadanie" w n-liniach?
Pewnie jest sporo takich automatów. Zawsze też można napisać swój.
Przykładowy skrypt w PowerShellu:
$text = gc $args[0]
$maxWidth = 80
$paragraphs = foreach ($paragraph in $text -split '(?:\r?\n){2,}') {
$stringBuilder = New-Object System.Text.StringBuilder
$column = 0
foreach ($word in $paragraph -split '\s+') {
if ($column -gt 0) {
if ($column + $word.Length + 1 -gt $maxWidth) {
$null = $stringBuilder.Append("`r`n")
$column = 0
} else {
$null = $stringBuilder.Append(' ')
$column++
}
}
$null = $stringBuilder.Append($word)
$column += $word.Length
}
$stringBuilder.ToString()
}
$newText = $paragraphs -join "`r`n"
$newText
Czy znak końca linii jest równoważny ze wstawionym ENTER czy raczej ENTER
na końcu linii to zwykła prowizorka i tak się nie powinno robić?
Enter to jest taki klawisz na klawiaturze. Wstawia on jeden lub więcej
znaków oznaczających koniec linii. Na Windowsie zakończenie linii to dwa
znaki, na Linuksie jeden.
Czyli tam gdzie chcemy złamać linię stukamy ENTER, czy raczej należy to
robić w jakiś bardziej elegancki sposób?
Plik tekstowy sam z siebie jest prowizorką. Jak inaczej chcesz łamać linie
niż znakiem końca linii? W Internecie (na stronach WWW) lub innych miejscach
nie łamie się linii na sztywno. Po prostu tekst jest dostosowywany do
szerokości kontenera w momencie wyświetlania. Jeśli jest jakiś bardziej
zaawansowany edytor, to klawisz Enter wstawia nowy akapit a nie nową linię.
Dlatego pytanie po co chcesz zawijać linie na stałe. Opowiadania lepiej
trzymać w formacie bez zawijania, będzie uniwersalnie. Jak to będzie bardzo
potrzebne, to najwyżej zrobisz nowy plik z wersją zawiniętą.
Robiłem nieśmiałą próbę w dokumencie DOC i liczyłem naiwnie, że wklejenie
takiego gołego tekstu z notatnika do DOC-a i zapisanie go, a potem
otworzenie i skopiowanie z tak zapisane DOC-a tego tekstu ponownie do
pliku TXT ładnie już linie połamie.
Ale się przeliczyłem :)
Nie mam pojęcia na co liczyłeś :)
--
Grzegorz Niemirowski
https://www.grzegorz.net/
|