|
|
| Auteur |
Bericht |
appie21
|
|
Onderwerp: Tekst uit een label in voegen in een bestand
Geplaatst: 26 jul 2010 - 13:03
|
|
Junior Developer
Geregistreerd op: 08-apr-2010
Berichten: 53
Status: Offline
|
|
Hallo
ik heb een vraag.
ik werk veel met adobe after effects.
ik dat programma kan ik scriptas maken
nu heb ik op mijn form een label met een waarde nu wil dat als ik op button1 klik
er een savedialog venster komt dat een bestandje opslaat als *.jsx
met de volgende inhoud
Code:
//start
myComp = app.project.activeItem;
mySolid = myComp.layers.addSolid([0,0,0], "colorCorrect", myComp.width, myComp.height,1);
mySolid.startTime = 0
mySolid.adjustmentLayer = true;
// myEffect = mySolid.property("Effects").addProperty("ADBE Lens Flare");
myEffect = mySolid.property("Effects").addProperty("Fast Blur")("Blurriness").setValue(90);
//end
nu wil ik dat de setValue(90); ingevuld wordt door de waarde die in mijn label staat.
en daarna het bestand wordt opgeslagen
(zodat ik het kan openen en in after effects kan gebruiken!)
Het mag ookz o zijn dat hij het bestandje laad en alleen de regel met de value aanpast!
Ik ben benieuwd naar jullie reacties |
|
|
| |
|
|
|
 |
Xymtrix
|
|
Onderwerp: Re: Tekst uit een label in voegen in een bestand
Geplaatst: 26 jul 2010 - 14:35
|
|
Professional Developer

Geregistreerd op: 09-okt-2008
Berichten: 467
Woonplaats: Nederland
Status: Offline
|
|
Daarvoor heb je het volgende nodig:
- SaveFileDialog
- StreamWriter
- FileStream
Voeg je dat allemaal samen krijg je het volgende:
Visual Basic code: Dim Value As Integer = 70 ' = Label1.text Dim FileName As String = Nothing Dim Savedialog As New SaveFileDialog Savedialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop Savedialog.Filter = "*.jsx|" Dim DialogResult As DialogResult = Savedialog.ShowDialog
If DialogResult = Windows.Forms.DialogResult.OK Or DialogResult = Windows.Forms.DialogResult.Yes Then FileName = Savedialog.FileName If Not FileName.EndsWith(".jsx") Then FileName = FileName & ".jsx" End If Try Dim sr As New IO.StreamWriter(New IO.FileStream(FileName, IO.FileMode.CreateNew, IO.FileAccess.Write, IO.FileShare.Write))
sr.WriteLine("//start") sr.WriteLine("mySolid = myComp.layers.addSolid([0,0,0], ""colorCorrect"", myComp.width, myComp.height,1);") sr.WriteLine("mySolid.startTime = 0") sr.WriteLine("mySolid.adjustmentLayer = true;") sr.WriteLine("// myEffect = mySolid.property(""Effects"").addProperty(""ADBE Lens Flare"");") sr.WriteLine("myEffect = mySolid.property(""Effects"").addProperty(""Fast Blur"")(""Blurriness"").setValue(" & Value & ");") sr.WriteLine("//end ")
sr.Flush() sr.Close() Catch ex As Exception MessageBox.Show(ex.ToString, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try
End If
 |
_________________ Hippopotomonstrosesquipedaliophobia - fear of long words..
|
| |
|
|
|
 |
appie21
|
|
Onderwerp: Re: Tekst uit een label in voegen in een bestand
Geplaatst: 26 jul 2010 - 19:23
|
|
Junior Developer
Geregistreerd op: 08-apr-2010
Berichten: 53
Status: Offline
|
|
Hoi
ja het werkt!
Alleen krijg ik nog een foutmelding als het bestandje een zelfde naam geeft (dus over wil schrijven)
Wel erg bedankt!!! |
|
|
| |
|
|
|
 |
appie21
|
|
Onderwerp: Re: Tekst uit een label in voegen in een bestand
Geplaatst: 28 jul 2010 - 22:00
|
|
Junior Developer
Geregistreerd op: 08-apr-2010
Berichten: 53
Status: Offline
|
|
kan iemand mij even helpen dit aan te passen
zodat ik ook het bestandje kan vervangen? |
|
|
| |
|
|
|
 |
Jark
|
|
Onderwerp: Re: Tekst uit een label in voegen in een bestand
Geplaatst: 29 jul 2010 - 07:53
|
|
Senior Developer
Geregistreerd op: 29-sep-2009
Berichten: 180
Status: Offline
|
|
Hallo appie21,
Ik heb twee dingen gewijzigd t.o.v. de vorige code.
1. gebruik altijd het Using statement als je werkt met streams, dit zorgt ervoor dat streams goed worden opgeruimd en hoef je ze zelf niet meer af te sluiten.
2. FileMode.CreateNew moet FileMode.Create worden
Nog wel 1 vraag: vereist het programma nog dat je het bestand in een bepaalde encoding weg moet schrijven (ansi/utf8/utf16)?
Visual Basic code: Dim Value As Integer = 70 ' = Label1.text Dim FileName As String = Nothing Dim Savedialog As New SaveFileDialog Savedialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop Savedialog.Filter = "*.jsx|" Dim DialogResult As DialogResult = Savedialog.ShowDialog
If DialogResult = Windows.Forms.DialogResult.OK Or DialogResult = Windows.Forms.DialogResult.Yes Then FileName = Savedialog.FileName If Not FileName.EndsWith(".jsx") Then FileName = FileName & ".jsx" End If Try Using fileStream As New IO.FileStream(FileName, IO.FileMode.Create, IO.FileAccess.Write, IO.FileShare.Write) Using sr As New IO.StreamWriter(fileStream) sr.WriteLine("//start") sr.WriteLine("mySolid = myComp.layers.addSolid([0,0,0], ""colorCorrect"", myComp.width, myComp.height,1);") sr.WriteLine("mySolid.startTime = 0") sr.WriteLine("mySolid.adjustmentLayer = true;") sr.WriteLine("// myEffect = mySolid.property(""Effects"").addProperty(""ADBE Lens Flare"");") sr.WriteLine("myEffect = mySolid.property(""Effects"").addProperty(""Fast Blur"")(""Blurriness"").setValue(" & Value & ");") sr.WriteLine("//end ") End Using End Using Catch ex As Exception MessageBox.Show(ex.ToString, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End If
Mvg,
Jark |
|
|
| |
|
|
|
 |
appie21
|
|
Onderwerp: Re: Tekst uit een label in voegen in een bestand
Geplaatst: 11 aug 2010 - 15:26
|
|
Junior Developer
Geregistreerd op: 08-apr-2010
Berichten: 53
Status: Offline
|
|
Het is volgens mij utf8 code
Je hebt mij erg geholpen ben er zeer dankbaar voor!
ik heb een aanvulliende vraag
ik wil de status (visible true of false) van een picturebox toevoegen aan de code
ik wil dat in dit zinnetje mySolid.adjustmentLayer = true;
de status van de picturebox wordt weg geschreven.
(ik ben al wel zover dat ik het in een message box krijg haha maar nu dus wil ik het in de code zelf krijgen.. hoe nu verder
Code: Dim Value As Integer
Dim value2 As Integer = PictureBox1.Visible
If value2 = True Then
MsgBox("on")
Else
MsgBox("off")
End If
Dim FileName As String = Nothing
Dim Savedialog As New SaveFileDialog
Savedialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
Savedialog.Filter = "*.jsx|"
Dim DialogResult As DialogResult = Savedialog.ShowDialog
If DialogResult = Windows.Forms.DialogResult.OK Or DialogResult = Windows.Forms.DialogResult.Yes Then
FileName = Savedialog.FileName
If Not FileName.EndsWith(".jsx") Then
FileName = FileName & ".jsx"
End If
Try
Using fileStream As New IO.FileStream(FileName, IO.FileMode.Create, IO.FileAccess.Write, IO.FileShare.Write)
Using sr As New IO.StreamWriter(fileStream)
sr.WriteLine(" var my_file = new File(""D:\adobe programeer werk\eten.aep""); ")
sr.WriteLine(" new_project = app.open(my_file);myComp = app.project.activeItem; ")
sr.WriteLine(" var myLayer = myComp.layer(""1.psd""); ")
sr.WriteLine(" var myLayer1 = myComp.layer(""2.psd""); ")
sr.WriteLine(" var myEffect = myLayer.property(""Effects"").addProperty(""Fast Blur""); ")
sr.WriteLine(" var myEffect1 = myLayer1.property(""Effects"").addProperty(""Fast Blur""); ")
sr.WriteLine(" myEffect.property(""Blurriness"").setValue(100); ")
sr.WriteLine(" mySolid.adjustmentLayer = true; ")
End Using
End Using
Catch ex As Exception
MessageBox.Show(ex.ToString, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End If
|
|
|
| |
|
|
|
 |
appie21
|
|
Onderwerp: Re: Tekst uit een label in voegen in een bestand
Geplaatst: 12 aug 2010 - 21:35
|
|
Junior Developer
Geregistreerd op: 08-apr-2010
Berichten: 53
Status: Offline
|
|
Hallo na een avondje lekker prutsen ben ik weer een stapje verder
Nu heb ik een vraag ik heb een aantal pictureboxen (10) die ik kan in stellen op visible true of picturebox false
nu wil ik die waarde weg schrijven en dat doe ik met de code die hier onder staat (dat lukt al aardig
nu wil ik dat de visible waarde van picturebox1 wordt weg geschreven naar het zinnettje in de file
dus naar sr.WriteLine(" myLayer1.enabled = " & Value & ";")
en de waarde van picturebox2 naar
sr.WriteLine("myLayer2.enabled = " & Value & ";")
Hebben jullie tips om dit eenvoudig en makkelijk in mijn code in te voeren?
hier de code
Code: Dim Value As String = 0 Or 1
Dim value1 As Integer = PictureBox1.Visible
If value1 = 0 Then
Value = "false"
Else
Value = "true"
End If
Dim FileName As String = Nothing
Dim Savedialog As New SaveFileDialog
Savedialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
Savedialog.Filter = "*.jsx|"
Dim DialogResult As DialogResult = Savedialog.ShowDialog
If DialogResult = Windows.Forms.DialogResult.OK Or DialogResult = Windows.Forms.DialogResult.Yes Then
FileName = Savedialog.FileName
If Not FileName.EndsWith(".jsx") Then
FileName = FileName & ".jsx"
End If
Try
Using fileStream As New IO.FileStream(FileName, IO.FileMode.Create, IO.FileAccess.Write, IO.FileShare.Write)
Using sr As New IO.StreamWriter(fileStream)
sr.WriteLine(" var my_file = new File(""d:/3.aep""); ")
sr.WriteLine(" new_project = app.open(my_file);myComp = app.project.activeItem; ")
sr.WriteLine(" var myLayer1 = myComp.layer(""1.psd""); ")
sr.WriteLine(" var myLayer2 = myComp.layer(""2.psd""); ")
sr.WriteLine(" var myLayer3 = myComp.layer(""3.psd""); ")
' sr.WriteLine(" var myEffect = myLayer1.property(""Effects"").addProperty(""Fast Blur""); ")
' sr.WriteLine(" var myEffect1 = myLayer2.property(""Effects"").addProperty(""Fast Blur""); ")
'sr.WriteLine(" //myEffect.property(""Blurriness"").setValue(100); ")
'sr.WriteLine(" // myEffect1.property(""Blurriness"").setValue(100); ")
' sr.WriteLine(" myLayer1.enabled = " & Value & ";")'hier de visible waarde van picturebox1
sr.WriteLine(" myLayer2.enabled = " & Value & ";") 'hier de visible waarde van picturebox2
sr.WriteLine("myLayer.enabled = " & Value & ";") 'hier de visible waarde van picturebox3 enz enz
End Using
End Using
Catch ex As Exception
MessageBox.Show(ex.ToString, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End If
Ik hoor graag van jullie adviezen!
Alvast bedankt |
|
|
| |
|
|
|
 |
chrissie1
|
|
Onderwerp: Re: Tekst uit een label in voegen in een bestand
Geplaatst: 13 aug 2010 - 08:03
|
|
Senior Developer

Geregistreerd op: 09-mei-2010
Berichten: 188
Status: Offline
|
|
Ik zou een methode getVisible creeren.
Visual Basic code: Public Function getVisible(Byval picbox as PictureBox) as string return picbox.Visible.ToString.ToLower End Function
En dit
Visual Basic code: " myLayer2.enabled = " & Value & ";"
kan je gemakkelijk vervangen door.
Visual Basic code: " myLayer2.enabled = " & getVisible(PictureBox2) & ";"
Om er dan voor te zorgen dat je geen 10 lijnen meer moet schrijven zal je nog iets verder moeten gaan.
Visual Basic code: For i as Integer = 1 to 9 sr.WriteLine(" myLayer" & i.ToString & ".enabled = " & getVisible(CType(Me.Controls("PictureBox" & i.ToString, PictureBox)) & ";") Next
En dat zou het zo ongeveer moeten zijn.
BTW vrij zeker dat de savedialog dit voor je zal doen.
Visual Basic code: If Not FileName.EndsWith(".jsx") Then FileName = FileName & ".jsx" End If
En één grote try catch rond dat gebeuren is niet echt nodig. |
_________________ Blog
Twitter
|
| |
|
|
|
 |
appie21
|
|
Onderwerp: Re: Tekst uit een label in voegen in een bestand
Geplaatst: 13 aug 2010 - 08:38
|
|
Junior Developer
Geregistreerd op: 08-apr-2010
Berichten: 53
Status: Offline
|
|
| het werkt al |
Laatst aangepast door appie21 op 13 aug 2010 - 09:17, in totaal 1 keer bewerkt
|
| |
|
|
|
 |
chrissie1
|
|
Onderwerp: Re: Tekst uit een label in voegen in een bestand
Geplaatst: 13 aug 2010 - 09:10
|
|
Senior Developer

Geregistreerd op: 09-mei-2010
Berichten: 188
Status: Offline
|
|
| Ja dat had ik gemerkt. Daar dient dan ook de ToLower voor. |
_________________ Blog
Twitter
|
| |
|
|
|
 |
appie21
|
|
Onderwerp: Re: Tekst uit een label in voegen in een bestand
Geplaatst: 13 aug 2010 - 09:22
|
|
Junior Developer
Geregistreerd op: 08-apr-2010
Berichten: 53
Status: Offline
|
|
Erg erg erg bedankt!
alleen deze werkt nog niet
Code: For i as Integer = 1 to 9
sr.WriteLine(" myLayer" & i.ToString & ".enabled = " & getVisible(CType(Me.Controls("PictureBox" & i.ToString, PictureBox)) & ";")
Next
ik krijg
Error 1 'PictureBox' is a type and cannot be used as an expression. C:\Users\Albert\Documents\Visual Studio 2010\Projects\on off\on off\Form1.vb 58 116 on off
en even over de savedialog hnhij werkt wel alleen als ik dezelfde bestandsnaam in geef dan overwrite hij hem zonder te vragen. geef ik bijvoorbeeld test.jsx intuyp dan vraagt hij wel wilt u het bestaande bestand vervangen |
|
|
| |
|
|
|
 |
chrissie1
|
|
Onderwerp: Re: Tekst uit een label in voegen in een bestand
Geplaatst: 13 aug 2010 - 09:31
|
|
Senior Developer

Geregistreerd op: 09-mei-2010
Berichten: 188
Status: Offline
|
|
Visual Basic code: CType(Me.Controls("PictureBox" & i.ToString, PictureBox)
moet dit zijn
Visual Basic code: CType(Me.Controls("PictureBox" & i.ToString), PictureBox)
|
_________________ Blog
Twitter
|
| |
|
|
|
 |
appie21
|
|
Onderwerp: Re: Tekst uit een label in voegen in een bestand
Geplaatst: 13 aug 2010 - 13:16
|
|
Junior Developer
Geregistreerd op: 08-apr-2010
Berichten: 53
Status: Offline
|
|
| Het werkt erg erg bedankt nu kan ik weer verder! |
|
|
| |
|
|
|
 |
appie21
|
|
Onderwerp: Re: Tekst uit een label in voegen in een bestand
Geplaatst: 18 aug 2010 - 15:20
|
|
Junior Developer
Geregistreerd op: 08-apr-2010
Berichten: 53
Status: Offline
|
|
ik heb nog een aanvullende vraag!
ik moet het volgende zinnetje in visual vasic hebben
var myLayer3= myComp.layer("3")
ik gebruik daar deze code voor
Code:
sr.WriteLine(" var myLayer" & i.ToString & "= myComp.layer(" & i.ToString & ") ")
wat er dan weg geschreven wordt is
var myLayer3= myComp.layer(3)
zonder de aanhalings tekens hoe moet het zinnetje zijn met aanhalingstekens?
(ben al een poosje aan het prutsen er mee kom er niet uit! ;( )
Heb nu dit
sr.WriteLine(" var myLayer" & i.ToString & """= myComp.layer(""" & i.ToString & """)")
alleen staat er nog een "achter layer krijg hem niet weg
ben benieuwd!
Edit:
Dit is hem !
sr.WriteLine(" var myLayer" & i.ToString & "= myComp.layer(""" & i.ToString & """) ") |
|
|
| |
|
|
|
 |
appie21
|
|
Onderwerp: Re: Tekst uit een label in voegen in een bestand
Geplaatst: 18 aug 2010 - 17:08
|
|
Junior Developer
Geregistreerd op: 08-apr-2010
Berichten: 53
Status: Offline
|
|
chrissie1 schreef:
Visual Basic code: For i as Integer = 1 to 9 sr.WriteLine(" myLayer" & i.ToString & ".enabled = " & getVisible(CType(Me.Controls("PictureBox" & i.ToString, PictureBox)) & ";") Next
nog een vraag hier over hoop dat je me even verder kunt helpen
Mijn pictureboxen staan op een ander form (form2)
Hoe kan ik daar de gegevens van ontvangen? (of ze visible zijn of niet)
zelf had ik bedacht
Code: For i1 As Integer = 3 To 31
sr.WriteLine(" myLayer" & i1.ToString & ".enabled = " & getVisible(CType(Me.Controls("form2.PictureBox" & i1.ToString), PictureBox)) & ";")
Next
Maar dat werkt niet!
Help ! |
|
|
| |
|
|
|
 |
|
|
|
|