cbMedia, tiedostojen sisällyttäminen ohjelmaan

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
KilledWhale
Tech Developer
Tech Developer
Posts: 545
Joined: Sun Aug 26, 2007 2:43 pm
Location: Liminka

cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by KilledWhale »

Joku mietiskeli irkissä, mikä olisi paras tapa sisällyttää kuvia, musiikkia yms. ohjelmaan mukaan.
Väsäsin pikaisesti ohjelman, joka sisällyttää tiedostoja cb-exeihin sekä funktiot tiedostojen purkamista varten.
Kaiken tyyppisiä tiedostoja on mahdollista purkaa ja lisäherkkuna ohjelma voi ladata 24bit raa'an bmp kuvan suoraan muistiin datasta.
Muut kuvat ja media tulee ensin purkaa ja sitten ladata.

Jos joku jaksaa tehdä lisää funktioita median lataamiseksi suoraan muistiin, voi lähettää niitä minulle niin liitän pakettiin.

cbMediaTest.cb on esimerkki käytöstä ja mukana on myös siitä valmiiksi käännetty exe.
cbMediaPacker taas pakkaa mediat exeen mukaan.
config.iniä muokkaamalla voi säädellä mihin tiedostoon cbMediaPacker pakkaa minkä kansion sisällön.

Pidemmittä puheitta:
http://killedwhale.kapsi.fi/foo/cbMedia.zip

Bugiehdotuksia sekä parannusraportteja voi laittaa tässä tai privaan
Last edited by KilledWhale on Sat Aug 21, 2010 10:35 am, edited 2 times in total.
CoolBasic henkilökuntaa
Kehittäjä

cbFUN Kello
cbSDL
Whale.dy.fi

<@cce> miltäs tuntuu olla suomen paras
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by MaGetzUb »

Kerrankin jotain hyödyllistä siinä mielessä, ettei tarvitse pelätä, etä joku tulisi urkkimaan tai muokkailemaan toisten medioita. Kiitos! :) GJ!
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
otto90x
Advanced Member
Posts: 349
Joined: Mon Aug 27, 2007 9:00 pm
Location: Lapinjärvi, Finland
Contact:

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by otto90x »

Huomasin että ohjelma ei ota huomioon pakkauskansiossa olevia kansioita tai niiden sisältöä. Tuo ei sinänsä välttämättä ole paha juttu, mutta on hyvä tietää. Tiedostojen purku valittuun polkuun olisi kaivattava ominaisuus ja esimerkiksi asennusohjelman teossa se olisi todella hyödyllinen.
Otto Martikainen a.k.a. MetalRain, otto90x, kAATOSade.
Runoblogi, vuodatusta ja sekoiluja.
Jee

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by Jee »

Ei toimi??
Testi ohjelma ei toimi mikä vikana? Tulee Memory...
KilledWhale
Tech Developer
Tech Developer
Posts: 545
Joined: Sun Aug 26, 2007 2:43 pm
Location: Liminka

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by KilledWhale »

Jee wrote:Ei toimi??
Testi ohjelma ei toimi mikä vikana? Tulee Memory...
Muistithan ajaa mediaPackerin ennen sitä?
CoolBasic henkilökuntaa
Kehittäjä

cbFUN Kello
cbSDL
Whale.dy.fi

<@cce> miltäs tuntuu olla suomen paras
User avatar
Substance
Active Member
Posts: 234
Joined: Fri Mar 14, 2008 5:48 pm

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by Substance »

KilledWhale wrote:
Jee wrote:Ei toimi??
Testi ohjelma ei toimi mikä vikana? Tulee Memory...
Muistithan ajaa mediaPackerin ennen sitä?
Minulla ilmoittaa, ettei exessä ole mediaa vaikka ajoin packerin ennen testiä. Toivottavasti en ole ymmärtänyt mitään väärin...
EDIT:

Ahaa ^^

Last edited by Substance on Wed Oct 28, 2009 8:35 pm, edited 1 time in total.
Substance aka LittleGreen
Red Encounter - shoot'em uppia - lataus
KilledWhale
Tech Developer
Tech Developer
Posts: 545
Joined: Sun Aug 26, 2007 2:43 pm
Location: Liminka

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by KilledWhale »

LittleGreen wrote:
KilledWhale wrote:
Jee wrote:Ei toimi??
Testi ohjelma ei toimi mikä vikana? Tulee Memory...
Muistithan ajaa mediaPackerin ennen sitä?
Minulla ilmoittaa, ettei exessä ole mediaa vaikka ajoin packerin ennen testiä. Toivottavasti en ole ymmärtänyt mitään väärin...
Packer antaa ulos out.exe nimisen tiedoston, mutta ei muokkaa alkuperäistä
CoolBasic henkilökuntaa
Kehittäjä

cbFUN Kello
cbSDL
Whale.dy.fi

<@cce> miltäs tuntuu olla suomen paras
Guest

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by Guest »

KilledWhale wrote:
LittleGreen wrote:
KilledWhale wrote: Muistithan ajaa mediaPackerin ennen sitä?
Minulla ilmoittaa, ettei exessä ole mediaa vaikka ajoin packerin ennen testiä. Toivottavasti en ole ymmärtänyt mitään väärin...
Packer antaa ulos out.exe nimisen tiedoston, mutta ei muokkaa alkuperäistä
Siis hä? out.exesessä on siis ne kuvat eikä siinä testi ohjelmassa?
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by TheFish »

Vieras wrote:Siis hä? out.exesessä on siis ne kuvat eikä siinä testi ohjelmassa?
Eli out.exe on siis mitä ilmeisimmin kopio testi-ohjelmasta, johon on vain lisätty mediat sisään
CoolBasic henkilökuntaa
Kehittäjä
User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by CCE »

Hep, teinpäs tämän avulla pienen intron. Tein itse koodin, musan ja grafiikat.
intro.zip ~620kb
User avatar
skinkken
Advanced Member
Posts: 453
Joined: Sat Sep 01, 2007 4:00 pm
Location: Helsinki

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by skinkken »

CCE wrote:Hep, teinpäs tämän avulla pienen intron. Tein itse koodin, musan ja grafiikat.
intro.zip ~620kb
Jee!!! :D :D
Musa oli aivan mahtava!

Kirjasto on todella hyvä, paitsi tietenkin musan voi pölliä (alt-tab ja kopioi...) ja pöllinkin.

ja musaa pidin soimassa kun kirjoitin tämän viestin :)
Valmiit pelit: House of Horrors , Battle Zone , Über Ball , Itdoti , Space Chaos , Bloxxplosives
Projekti jota teen ehkä joskus vielä: viewtopic.php?f=11&t=2636 <-- Tämä rivi päivitetty 14.1.2013
User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by Misthema »

Hehe, kyllä sen musankin saa niin ettei sitä saa kopioitua. =)
Sen jälkeen kun ohjelma on purkanut ja ladannut tiedostot muistiin, deletoi puratut tiedostot (ellei sitten käytä PlaySound:ia, joka lukee tiedostoa "striiminä" kovalevyltä). Tai sitten purkaa tiedoston jonnekin mistä sitä ei kukaan löytäisi tai tajuaisi etsiä. ;)
Valtzu
Active Member
Posts: 115
Joined: Sun Aug 26, 2007 2:40 pm
Location: Sauvo
Contact:

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by Valtzu »

Misthema wrote:Hehe, kyllä sen musankin saa niin ettei sitä saa kopioitua. =)
Sen jälkeen kun ohjelma on purkanut ja ladannut tiedostot muistiin, deletoi puratut tiedostot (ellei sitten käytä PlaySound:ia, joka lukee tiedostoa "striiminä" kovalevyltä). Tai sitten purkaa tiedoston jonnekin mistä sitä ei kukaan löytäisi tai tajuaisi etsiä. ;)
Mutta kuka tahansa voi kuitenkin cbMedian funktioita käyttämällä purkaa mistä tahansa cbMedialla "pakatusta" exestä mediat. Kryptaus on siis ainut vaihtoehto.
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by Jani »

KilledWhalehan voi luultavasti lisätä salasanasuojuken mukaan pakettiin... Luulisin ainakin sillä jos tiedostot menee, niin miksei salasanakin sinne sekaan.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by Jani »

otto90x wrote:Huomasin että ohjelma ei ota huomioon pakkauskansiossa olevia kansioita tai niiden sisältöä. Tuo ei sinänsä välttämättä ole paha juttu, mutta on hyvä tietää. Tiedostojen purku valittuun polkuun olisi kaivattava ominaisuus ja esimerkiksi asennusohjelman teossa se olisi todella hyödyllinen.
Tuota... Itse sain tuon ohitettua pienellä säädöllä. Laitan koodia perään jos halutaan.

EDIT: Sain koodin (ehkä) mukavampaan muotonn ja kehtaan nyt laittaa sen tähän. Tiedän, että systeemi ei ole paras ja se ei ota huomioon kansioiden alakansioita.

Code: Select all

// CBMedia //
Function cbMedia_ExtractAll()
	n$ = GetEXEName()
	f = OpenToRead(n)
		SeekFile f, FileSize(n) - 4
		SeekFile f, FileSize(n) - ReadInt(f) - 8
		p = ReadInt(f)
		If (p = 0)
			MakeError "No media in exe!"
		Else
			SeekFile f, p
		EndIf
		v = ReadInt(f)
		For i = 1 To v
			name$ = ReadString(f)
			offset = ReadInt(f)
			size = ReadInt(f)
			toff = FileOffset(f)
			SeekFile f, offset
			o = OpenToWrite(name)
				For a = 1 To size / 4
					WriteInt o, ReadInt(f)
				Next a
				For a = 1 To size Mod 4
					WriteByte o, ReadInt(f)
				Next a
			CloseFile o
			SeekFile f, toff
		Next i
	CloseFile f
	Return i
EndFunction

Function cbMedia_Extract(file$)
	n$ = GetEXEName()
	f = OpenToRead(n)
		SeekFile f, FileSize(n) - 4
		SeekFile f, FileSize(n) - ReadInt(f) - 8
		p = ReadInt(f)
		If (p = 0)
			MakeError "No media in exe!"
		Else
			SeekFile f, p
		EndIf
		v = ReadInt(f)
		For i = 1 To v
			name$ = ReadString(f)
			offset = ReadInt(f)
			size = ReadInt(f)
			If (Lower(name) = Lower(file))
				Exit
			EndIf
		Next i
		SeekFile f, offset
		o = OpenToWrite(file)
			For i = 1 To size / 4
				WriteInt o, ReadInt(f)
			Next i
			For i = 1 To size Mod 4
				WriteByte o, ReadByte(f)
			Next i
		CloseFile o
	CloseFile f
EndFunction

Function cbMedia_GetCount()
	n$ = GetEXEName()
	f = OpenToRead(n)
		SeekFile f, FileSize(n) - 4
		SeekFile f, FileSize(n) - ReadInt(f) - 8
		p = ReadInt(f)
		If (p = 0)
			MakeError "No media in exe!"
		Else
			SeekFile f, p
		EndIf
		v = ReadInt(f)
	CloseFile f
	Return v
EndFunction
// CBMedia //


// Extract.txt:ssä on purettavan kansion nimi.
cbMedia_Extract("Extract.txt")

f=OpenToRead("Extract.txt")
    patch$=ReadLine(f)
CloseFile f
DeleteFile "Extract.txt"

MakeDir patch
ChDir patch

// Puretaan tiedostot kansioon.
cbMedia_ExtractAll()

DeleteFile "Extract.txt"

// Aloitetaan haku.
StartSearch
    Repeat
        file$=FindFile()
        
        If file="" Then Exit
        
        If CountWords(file,"_")=2 //Katsotaan, onko tekstissä alaviivaa.
            newp$=GetWord(file,1,"_")
            file$=Replace(file,newp+"_","")
            If IsDirectory(newp)=0 Then MakeDir newp // Jos on, tehdään uusi kansio ensimmäisen sanan perusteella
            CopyFile newp+"_"+file, newp+"/"+file    // ja kopioidaan se luotuun kansioon.
            DeleteFile newp+"_"+file
        EndIf
        
        AddText file
        
        DrawScreen
    Forever
EndSearch

AddText "Ready!"

DrawScreen
WaitKey  




Attachments
Extract.rar
(730.83 KiB) Downloaded 452 times
Last edited by Jani on Tue Dec 15, 2009 5:43 pm, edited 1 time in total.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
alker
Newcomer
Posts: 49
Joined: Thu Dec 18, 2008 3:32 pm

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by alker »

Toimiiko tämä Objecteissa. Jos toimii tämä idean on hyvä ja toimiva :P
MAVmaggot
Advanced Member
Posts: 468
Joined: Fri Aug 31, 2007 10:18 pm
Location: bitspace

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by MAVmaggot »

Voit aina ladata cuvat cuviksi ja sen jälkeen MakeObjectilla tehdä objectit ja lopuksi maalata objectit cuvilla. Eli toimii.
User avatar
Timblex
Advanced Member
Posts: 252
Joined: Sun Apr 11, 2010 10:37 am
Location: Kouvola

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by Timblex »

tein asennus ohjelman joka tekee minne haluat kansion väri purkaa sinne tiedoston väri.exe tekee väri kansioon kansion media ja purkaa sinne median lataa tästä linkistä
käytin pakkaamiseen ultimate packeria se on tekemäni versio cbmediapackerista
HUOM!musiikki päälle ja musiikki pois nappuloista ei käy mitään
Entinen timpe99...
Demokisa 2013 demo valmis, Check it out!
KilledWhale
Tech Developer
Tech Developer
Posts: 545
Joined: Sun Aug 26, 2007 2:43 pm
Location: Liminka

Re: cbMedia, tiedostojen sisällyttäminen ohjelmaan

Post by KilledWhale »

Wanha latauslinkki meni wanhaksi jouluservun kuolemisen myötä joten tässä uudempaa linkkiä.
http://killedwhale.kapsi.fi/foo/cbMedia.zip
CoolBasic henkilökuntaa
Kehittäjä

cbFUN Kello
cbSDL
Whale.dy.fi

<@cce> miltäs tuntuu olla suomen paras
Post Reply