Mám následující problém - textový soubor ve formátu TXT který obsahuje některé řádky začínající znakem + nebo + a bezprostředně následované textovým řetězcem různé délky a já potřebuju aby ten textový řetězec se dal vždy až na další řádek. Je to testová databáze. Nejlépe asi ve VBS skriptu
Teď mám:
+odpovědA
-OdpovědB
-C
-D
-E
a potřebuju to:
+
odpověďA
-
OdpověďB
-
C
atd. Jde to nějak zautomatizovat?
Dotaz:VBScript Formátování textu (přesun na nový řádek)
Moderátor: Mods_senior
-
navstevnik
- Level 4

- Příspěvky: 1142
- Registrován: 29 srp 2008 16:49
Re: Dotaz:VBScript Formátování textu (přesun na nový řádek)
Zde je jednoducha procedura VBA, ktera za znamenko "-" vlozi Enter:
Podle vzoru si proceduru uprav a dopln proceduru i pro vyhledani znamenka "+".
Kód: Vybrat vše
Option Explicit
Sub VlozEnter()
Dim PosE As Long
' nalezeni konce textu a pocet
Selection.EndKey Unit:=wdStory
PosE = Selection.End
' navrat na zacatek textu
Selection.HomeKey Unit:=wdStory
' bude hledano "-"
With Selection.Find
.Text = "-"
End With
' hledat a vkladat Enter dokud je poloha<konec
Do
Selection.Find.Execute
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeParagraph
Loop While Selection.Start < PosE
End SubPodle vzoru si proceduru uprav a dopln proceduru i pro vyhledani znamenka "+".
Re: Dotaz:VBScript Formátování textu (přesun na nový řádek)
Děkuju moc. Jenom šlo by to udělat aby se mi takhle dělili jen + a - ze začátku řádků. Teď to rozdělí i slova jako Rimskij-Korsakof na Rimskij a na nove radce Korsakof.
-
navstevnik
- Level 4

- Příspěvky: 1142
- Registrován: 29 srp 2008 16:49
Re: Dotaz:VBScript Formátování textu (přesun na nový řádek)
Zde je upravena procedura:
Kód: Vybrat vše
Option Explicit
Sub VlozEnter1()
Dim PosE As Long
' nalezeni konce textu a pocet
Selection.EndKey Unit:=wdStory
PosE = Selection.End
' navrat na zacatek textu
Selection.HomeKey Unit:=wdStory
With Selection
' bude hledano "-"
.Find.Text = "-"
' hledat a vkladat Enter dokud je poloha<konec
Do While Selection.Start < PosE
.Find.Execute
' je zacatek radku?
If .Information(wdHorizontalPositionRelativeToTextBoundary) = 0 Then
.MoveRight Unit:=wdCharacter, Count:=1
.TypeParagraph
End If
Loop
End With
End SubRe: Dotaz:VBScript Formátování textu (přesun na nový řádek)
Děkuji, funguje to skvěle
-
- Podobná témata
- Odpovědi
- Zobrazení
- Poslední příspěvek
