Stránka 1 z 1

Dotaz:VBScript Formátování textu (přesun na nový řádek)  Vyřešeno

Napsal: 01 dub 2009 09:23
od dhous
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?

Re: Dotaz:VBScript Formátování textu (přesun na nový řádek)

Napsal: 01 dub 2009 13:25
od navstevnik
Zde je jednoducha procedura VBA, ktera za znamenko "-" vlozi Enter:

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 Sub


Podle vzoru si proceduru uprav a dopln proceduru i pro vyhledani znamenka "+".

Re: Dotaz:VBScript Formátování textu (přesun na nový řádek)

Napsal: 01 dub 2009 14:53
od dhous
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.

Re: Dotaz:VBScript Formátování textu (přesun na nový řádek)

Napsal: 01 dub 2009 17:13
od navstevnik
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 Sub

Re: Dotaz:VBScript Formátování textu (přesun na nový řádek)

Napsal: 02 dub 2009 15:17
od dhous
Děkuji, funguje to skvěle