Poslao: 26 Dec 2014 11:30
|
offline
- m4rk0
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- 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.
|
|
Poslao: 26 Dec 2014 11:44
|
offline
- Fil
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Legendarni građanin
- Pridružio: 11 Jun 2009
- Poruke: 16586
|
Mislim da je neku aplikaciju Srki94 pravio za potrebe potforuma Igre (isto problem formatiranja).
|
|
|
|
|
|
Poslao: 26 Dec 2014 16:58
|
offline
- dr_Bora
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- 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
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!"
|
|
|
|
Poslao: 26 Dec 2014 17:46
|
offline
- m4rk0
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- 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
|
|
|
|
Poslao: 26 Dec 2014 20:05
|
offline
- 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
|
|
|
|
Poslao: 22 Maj 2015 18:53
|
offline
- rgdrajko
![Male](https://www.mycity.rs/templates/simplified/images2/user-sex.gif)
- Građanin
- 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
|
|
|
|