Dodavanje zadatog karaktera na pocetku svakog reda

Dodavanje zadatog karaktera na pocetku svakog reda

offline
  • m4rk0  Male
  • Administrator
  • Administrator tech foruma
  • Marko Vasić
  • Gladijator - Maximus Decimus Meridius
  • Pridružio: 14 Jan 2005
  • Poruke: 15766
  • Gde živiš: Majur (Colosseum)

Da ne pretrpavam naslov nije samo dodavanje na pocetku reda, vec ima jos nesto, a da bih objasnio sta zelim najbolje je da dam plastican primer.

Imam tekstualni fajl u sledecoj formi (parafraziram):

windows 10 - najnoviji microsoftov operativni sistem
kameni ugalj - ima izuzetno kaloricnu vrednost
masina za mlevenje mesa - potreba svake domacice


I tako 100 i kusur redova...

Ono sto ja zelim da dobijem je

[b]windows 10[/b] - najnoviji microsoftov operativni sistem
[b]kameni ugalj[/b] - ima izuzetno kaloricnu vrednost
[b]masina za mlevenje mesa[/b] - potreba svake domacice


Znaci treba mi neka skripta (bat, vbs) ili neki macro za word koji ce to automatski da izvrsi - da "wrapuje" tekst (na gore opisan nacin) koji je uvek na pocetku reda/recenice i nakon koga uvek ide crtica.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Fil  Male
  • Legendarni građanin
  • Pridružio: 11 Jun 2009
  • Poruke: 16586

Mislim da je neku aplikaciju Srki94 pravio za potrebe potforuma Igre (isto problem formatiranja).



offline
  • m4rk0  Male
  • Administrator
  • Administrator tech foruma
  • Marko Vasić
  • Gladijator - Maximus Decimus Meridius
  • Pridružio: 14 Jan 2005
  • Poruke: 15766
  • Gde živiš: Majur (Colosseum)

Nasao sam resenje, nije bas elegantno ali radi Smile

1. U command promptu sam kucao sledecu komandu:

(for /f "delims=" %L in (staralista.txt) do @echo [b] %L)> novalista.txt

gde je staralista.txt naziv tekstualnog fajla koji obradjujem a novalista.txt gotov izlazni fajl u kome je na pocetku svake recenice dodat karakter
[b]

2. Tekst sam kopirao u word i pomocu ctrl+h izvrsio zamenu na sledeci nacin



Naravno, ako neko ima neki jos brzi naci nek napise slobodno.

offline
  • Pridružio: 14 Feb 2008
  • Poruke: 12391

Fil ::Mislim da je neku aplikaciju Srki94 pravio za potrebe potforuma Igre (isto problem formatiranja).

Jok, to su samo šeme bile za uputstva i opise.

Ja sam u ovoj situaciji kombinovao Notepad ++, tastere gaming miša, makroe i find & replace Very Happy

Ali opet, Markov način je brži od toga jer sam ja morao da selektujem reč i stisnem dugme da bih dodao tagove.

Ziveli

offline
  • dr_Bora  Male
  • Anti Malware Fighter
    Rank 2
  • Pridružio: 24 Jul 2007
  • Poruke: 12280
  • Gde živiš: Höganäs, SE

Drag & drop file-a na donju skriptu...

Umesto - može da koristi bilo koje znakove i moguće je uneti tagove (stringove koje treba koristiti). Default je ovo što je Marko tražio...

Odradiće i neko sitno formatiranje:

adsadsa-dadadas
asda -daadsa
adsa- asda
Arrow
adsadsa - dadadas
asda - daadsa
adsa - asda


Set objFSO = CreateObject("Scripting.FileSystemObject")
 
 
If WScript.Arguments.length = 0 Then
  MsgBox "Drag and drop a file"
  WScript.Quit
End If

sFileToFix = WScript.Arguments(0)

If Not objFSO.FileExists(sFileToFix) Then
  MsgBox "This is not a file!"
  WScript.Quit
End If
 
Set oOldFile = objfso.OpenTextFile(sFileToFix, 1)
Set oNewFile = objfso.OpenTextFile(sFileToFix & " - new.txt", 2, True)

sSeparator = InputBox("Text separator:", "", "-")

sTag = InputBox("Tag to use on the left side:", "", "[b]")

sTag2 = InputBox("Tag to use on the right side:", "", "[/b]")


If Not oOldFile.AtEndOfStream Then
 
  While Not oOldFile.AtEndOfStream
 
    sLine = oOldFile.ReadLine
    sNewLine = sLine
    nScriptStartPos = InStr(1, sLine, sSeparator, vbTextCompare)
    If nScriptStartPos > 0 Then
      sNewLine = sTag & Trim(Left(sLine, nScriptStartPos - 1)) & sTag2 & " " & sSeparator & " " & Trim(Right(sLine, Len(sLine) - nScriptStartPos - Len(sSeparator) + 1))
    End If

    If oOldFile.AtEndOfStream Then
      oNewFile.Write(sNewLine)
    Else
      oNewFile.WriteLine(sNewLine)
    End If
 
  Wend
 
End If
 
oNewFile.Close
oOldFile.Close

 
MsgBox "Done!"

offline
  • m4rk0  Male
  • Administrator
  • Administrator tech foruma
  • Marko Vasić
  • Gladijator - Maximus Decimus Meridius
  • Pridružio: 14 Jan 2005
  • Poruke: 15766
  • Gde živiš: Majur (Colosseum)

@dr_Bora
Bravo care Smile

offline
  • IvanC 
  • Ugledni građanin
  • Pridružio: 30 Jun 2009
  • Poruke: 403

@dr_Bora kao i inače ovakve probleme rješava VBS skriptama bez problema
@m4rk0 inače da sam ja imao taj problem pokušao bih ga riješiti u Excelu, zato postavljam file rješenje koje može poslužiti za druge stvari (idejno)

1. Konvertirao bih tekst u stupce da razdvojim rečenicu u blokove
2. Dodao bih karaktere
3. Sve spojio sa Concatenate funkcijom

u prilogu primjer datoteke.
pozdrav

https://www.mycity.rs/must-login.png

offline
  • Pridružio: 06 Maj 2007
  • Poruke: 241
  • Gde živiš: Beograd

Ne razumem zasto toliko komplikujete u vba je to mnogo lakse:

Evo na brzinu napravite makro sa record, znak za novi red zamenite sa znak za novi red + [b] i snimite taj kod i kliknite na stop. Dobicete sve nove redove zamenjene sa novi red+[b]. Samo prvi red nije zamenjen, rucno uradite. Pozdrav

evo koda:

Sub Macro1()
'
' Macro1 Macro
'
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^p"
.Replacement.Text = "^p[b]"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Ko je trenutno na forumu
 

Ukupno su 1065 korisnika na forumu :: 42 registrovanih, 5 sakrivenih i 1018 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, 9k38, A.R.Chafee.Jr., Apok, Asparagus, BORUTUS, Brana01, Bubili, cvrle312, darkangel, dijica, dragoljub11987, havoc995, ikan, ILGromovnik, jaeger, Karla, Koridor, Krvava Devetka, Kubovac, kybonacci, Leonov, ljuba, Luka Blažević, marsovac 2, mercedesamg, mikrimaus, milimoj, milos.cbr, Mlav, Nemanja.M, opt1, ruma, sap, Sir Budimir, Trpe Grozni, vathra, Vlada78, VP6919, W123, zixmix, zxstole