Aktuelle Zeit: 25.06.2019 16:01

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Forum gesperrt Dieses Thema ist gesperrt. Sie können keine Beiträge editieren oder weitere Antworten erstellen.  [ 20 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: 29.03.2008 21:47 
Offline

Registriert: 08.02.2007 08:18
Du meinst den TagKnecht ?
-> den benutze ich so wie gepostet
Im Hauptprog siehts dann so aus:

SCtr_AddCode(TagKnecht(VollerDateiname,"Read","","","","","",""))
FileTitel.s=SCtr_EvalStr("Titel")
--> VollerDateiname wird zuvor natürlich noch "befüllt".

Btw:
Den TailBite habe ich schon bemüht (ScriptControl neu kompiliert)
-> leider immer noch "Memory access error...." :(

Gruß
Bernd


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 29.03.2008 21:51 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
Vielleicht sollte der NightKnecht doch einen String zurückgeben, der mehr als "" enthält :mrgreen:

Momentan gibt die Procedure nur nen leerstring zurück, leeres Skript macht
im allgemeinen nicht viel

_________________
PureBasic 5.70 | SpiderBasic 2.21 | Windows 10 Pro (x64) | Linux Mint 19.1 (x64)
"Die Jugend von heute mit ihren Ballerspielen, hocken nur in der Bude - wir haben früher die Leute noch draußen erschossen!"
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 29.03.2008 22:00 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
PurePi hat geschrieben:
Du meinst den TagKnecht ?

was soll ich denn sonst meinen, wenn Du nur diese eine Proc gepostet hast? ;-)

PurePi hat geschrieben:
-> den benutze ich so wie gepostet

na, dann haben wir den Fehler ja schon gefunden :lol:

Grüße ... Kiffi

// Edit: In Deinem Ursprungsposting ist es nicht viel besser

PurePi hat geschrieben:
Code:
Procedure.s MyVBS()
VBS$ + "MyVar =" + Chr(34) +"Hallo"+ Chr(34) + #CRLF$
ProcedureReturn
EndProcedure

_________________
"A user interface is like a joke. If you have to explain it, it’s not that good." (Martin Leblanc)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 29.03.2008 22:11 
Offline

Registriert: 08.02.2007 08:18
?? Verwirrung ??
Was soll denn aus der Procedure TagKnecht zurückgegeben werden ??(innerhalb der Procedure läuft doch nur VBS ab)
NACH Rückkehr wird doch erst mit z.B "FileTitel.s=SCtr_EvalStr("Titel")"
die VBS Variable einer PB Variablen zugewiesen.
Das ganze geht ja auch wunderbar solange folgende ich SCtr_EvalStr(...) nicht aus einer weiteren Procedure aufrufe (s. mein 1. Posting)
Und wie schon gesagt, mit PB 4.0 liefs bisher ohne Probleme

Bernd


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 29.03.2008 22:18 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
>> Und wie schon gesagt, mit PB 4.0 liefs bisher ohne Probleme
möchte ich mal bezweifeln.

Die Procedure setzt doch das Skript zusammen. Das Ergebnis der Procedure
ist das Skript in einem String, welches dann ausgeführt werden kann. Du
setzt den String zwar zusammen aber er verläßt niemals die Procedure :)

_________________
PureBasic 5.70 | SpiderBasic 2.21 | Windows 10 Pro (x64) | Linux Mint 19.1 (x64)
"Die Jugend von heute mit ihren Ballerspielen, hocken nur in der Bude - wir haben früher die Leute noch draußen erschossen!"
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 29.03.2008 22:32 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
ts-soft hat geschrieben:
>> Und wie schon gesagt, mit PB 4.0 liefs bisher ohne Probleme
möchte ich mal bezweifeln.

[grübel] ... es sei denn, er hat VBS$ irgendwo global deklariert.
Dann könnte es geklappt haben.

@PurePi: Wie Thomas schon schrieb:
Code:
 ProcedureReturn VBS$

wäre korrekt.

Grüße ... Kiffi

_________________
"A user interface is like a joke. If you have to explain it, it’s not that good." (Martin Leblanc)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 29.03.2008 22:38 
Offline

Registriert: 08.02.2007 08:18
Ne, Globale Deklaration ist und war nicht.
Um nochmal bei meinen simplem Beispiel zu bleiben:
Dann müßte es ja so laufen:
(tut aber nicht)

Global VBS$
SCtr_SetLanguage("VBScript")
SCtr_SetTimeOut(10000)

Procedure.s MyVBS()
VBS$ + "MyVar =" + Chr(34) +"Hallo"+ Chr(34) + #CRLF$
ProcedureReturn VBS$
EndProcedure

; Nach wie vor: die auskommentierten Zeilen gehen !
; folgende Aufrufe funkt. hier (aus dem Hauptprogramm) einwandfrei
; SCtr_AddCode(MyVBS())
; pbMyVar.s=SCtr_EvalStr("MyVar")

; !! Das geht NICHT (unter 4.20)
Procedure GetMyVar()
SCtr_AddCode(MyVBS())
pbMyVar.s=SCtr_EvalStr("MyVar")
EndProcedure

; Erfolgt der Aufruf aus einer Procedure gibt's "Invalid memory access.(read error at adress 0)"
GetMyVar()


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 30.03.2008 00:55 
Offline
Benutzeravatar

Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9
Hallo PurePi,

1.) Das 'Global VBS$' ist da totaler Käse. Am besten weg damit. Die
Funktion MyVBS() musst lediglich VBS$ zurückgeben, dann ist alles in
Butter.

2.) Es ist nicht auszuschliessen, dass die ScriptControl-Lib -- so wie sie ist --
nicht mehr korrekt unter PB4.2x läuft. Solange Du (oder sonstwer) sie
nicht neu kompiliert, ist es müßig, nach vermeintlichen Fehlern zu suchen.

3.) Was spricht dagegen, den PureDispHelper zu verwenden? [url=http://www.purebasic.fr/german/viewtopic.php?p=192587#192587]Das von
Thomas gepostete Beispiel[/url] funktioniert doch.

4.) Bitte Code-Tags verwenden (und nicht immer den Code grün einfärben)

Grüße ... Kiffi

_________________
"A user interface is like a joke. If you have to explain it, it’s not that good." (Martin Leblanc)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 30.03.2008 11:12 
Offline

Registriert: 08.02.2007 08:18
Moin Kiffi,

besten Dank für deine Infos.
Zitat:
'Global VBS$'...

ist schon klar das es überflüssig wie`n Kropf ist, wollte nur zeigen dass es mit "Global" genausowenig geht.
Zitat:
..Solange Du (oder sonstwer) sie nicht neu kompiliert,...

Unter 4.20 neu kompiliert hatte ich bereits (mit neuester TailBilte), hatte ich weiter oben auch schon mal gepostet.
Das neu kompilieren hat aber nicht geholfen
Aber ich glaube schon, das die Memoryverwaltung (oder was auch immer) in 4.20 anders ist. Wie bereits gepostet: die ReadFunctions der JHRegistry_420 LIB (wie der Name sagt - für 4.20) haben selbiges Problem
Zitat:
... das von Thomas gepostete Beispiel...

jo, das geht gut.
Leider kriege es nicht hin, diese entsprechend umzubauen :cry:
Ich poste mal meinen Versuch, evtl. kann mir ja mal jemand Hilfe geben:
Es ist für mich unklar, was innerhalb der Procedure GetTag abzulaufen hat, und was hinterher mit dhGetValue() "abzugreifen" ist.

Grüsse
Bernd
Code:
EnableExplicit

Procedure.s GetTags(File$)

  Protected Script$

   ; Object klar machen
   Script$ = "Set oWMP = CreateObject(" + Chr(34) + "wmPlayer.ocx" + Chr(34) + ") " + #CRLF$
   Script$ + "Set oMedia = oWMP.newMedia("+Chr(34)+File$+ Chr(34)+")" + #CRLF$
   
   ;Read
   ;Script$ + "Bitrate=oMedia.GetIteminfo(" + Chr(34) + "Bitrate"+ Chr(34) + ") " + #CRLF$
   
  ProcedureReturn Script$

EndProcedure

dhToggleExceptions(#True)

Define.l Result, obj = dhCreateObject("MSScriptControl.ScriptControl")
Define.s Script

If obj

  dhPutValue(obj, "Language = %T", @"VBScript")
  dhGetValue("%T", @Result, obj, "Language")

  If Result

    Debug "Language: " + PeekS(Result)
    dhFreeString(Result) : Result = 0

  EndIf

  dhPutValue(obj, "TimeOut = %d", 20000)
  dhGetValue("%d", @Result, obj, "TimeOut")

  Debug "TimeOut: " + Str(Result) + " ms"
  Script = GetTags("c:\test\All Saints - Black Coffee.mp3")
  dhCallMethod(obj, "AddCode(%T)", @Script)
  ; -> bis hierin OK, aber dann....
  dhGetValue("%T", @Result, obj, "GetIteminfo(%T)", @"Bitrate")
  ;--> dhGetValue... geht schon nicht mehr  "object doesn`t support..."
  ; ---> was mach ich denn da verkehrt ?
  If Result

    MessageRequester("Bitrate:", PeekS(Result), #MB_ICONINFORMATION)
    dhFreeString(Result) : Result = 0

  EndIf

  dhReleaseObject(obj) : obj = 0

EndIf


Nach oben
 Profil  
 
 Betreff des Beitrags: S O L V E D !
BeitragVerfasst: 30.03.2008 17:25 
Offline

Registriert: 08.02.2007 08:18
OK: Augen auf, Verstand einschalten - und schon wird alles gut... :allright:
Code:
dhGetValue("%T", @Result, obj, "GetIteminfo(%T)", @"Bitrate")
--> Unfug
dhGetValue("%T", @Result, obj, "eval(%T)", @"Bitrate")
--> so ist`s recht   

:wink:
Werde dann mal auf DispHelper umstellen (damit geht das ganze auch aus einer Procedure).
Bzgl. ScriptControl: Die scheint ohne Änderungen nicht unter 4.20 zu funktionieren. Wenn jemand die Anpassungen vornehmen kann /will (mein Know How reicht dafür leider nicht), würde ich für Tests gern zur Verfügung stehen.

Gruß
Bernd


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Forum gesperrt Dieses Thema ist gesperrt. Sie können keine Beiträge editieren oder weitere Antworten erstellen.  [ 20 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye