Ir ao conteúdo
  • Cadastre-se

Estudo extensões


Ir à solução Resolvido por vangodp,

Posts recomendados

Dei uma pesquisada na internet e não encontrei material de estudo..., queria entender mais como funcionam as extensões no SO windows, tanto na implementação do programa principal quanto do arquivo derivado. Se alguém tiver sites ou apostilas que falam sobre o conteúdo seria bom.

 

 

 

Desde já, grato.

Link para o comentário
Compartilhar em outros sites

Como assim? Extensões de arquivos? A extensão de um arquivo não significa muita coisa. Em Linux nem existe extensões, em Windows somente especificam com que programa deve ser relacionado, são entradas no registro de windows que contêm informações de como devem ser tratados certas arquivos, com que programa abrem, etc.

Abra opção executar escreva regedit e pulse enter, logo depois que abrir o editor de registros você verá algo como HKEY_CLASSES_ROOT, nessa pestana você terá todos os formatos de extensões conhecidos pelo sistema, se souber manipular o registro e muito importante é "SABER O QUE ESTÁ FAZENDO" fique a vontade, mas se tiver duvida melhor não tocar nada, você pode terminar com o sistema totalmente corrompido.

 

Se buscar o formato WinRAR por exemplo, vai dizer que esse formato se abre de forma predeterminada com o programa WinRAR, vai dizer o tipo de ícone que tem o programa, e muitas outras coisas, coisas que o criador do programa acho útil anotar no registro que talvez não devam ser modificadas sem saber seu significado.


Sinceramente se quer aprender mais sobre extensões de arquivos você deverá aprender como trabalha o registro de windows. Com C/C++ você poderá manipular o registro com algumas funções especiais, busque info por internet.

Não sei se é bem isso que você está buscando, se não simplesmente ignore a mensagem >_<

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Já ajudou bastante, só pra confirmar: as extensões são configuradas plenamente pelo registro que é feito pela linha de comando...

 

Por exemplo, o Code Blocks tem a extensão .cbp, a qual contem seus dados de configuração do projeto. A forma a qual o Code Blocks vai tratar o que foi "escrito" nesta extensão está escrita inteiramente no registro?

 

Basicamente, queria criar uma extensão e abri-la a partir do meu programa.

Link para o comentário
Compartilhar em outros sites

Somente existe 2 tipos de arquivos, binários e de testo plano(txt). A forma com a que o arquivo vai ser tratado depende do programa tipo: "Ele sabe interpretar?".

Se você abrir esse mesmo arquivo que você diz com o notepad você vai ver que ele é um simples arquivo de texto plano(chars). Se você tentar abrir um arquivo binário como um rar por exemplo, você verá símbolos estranhos. Isso por quê? Por que você não sabe a forma de tratar um arquivo binário, a menos que o tenha criado você.

O registro guarda certas configurações que achou pertinente o desenvolvedor do programa. Coisas bem podia ser o tamanho da janela antes de fechar, configurações que não queiramos que se perda, etc, para essas coisas você pode usar o registro além de indicar com que programa abre.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Entendi.

Eu quero criar um arquivo binário com as configurações do programa o qual estaria desenvolvendo. Basicamente precisava saber como guardar variáveis em um binário e fazer com que ao executar este arquivo binário criado, ele abra o programa com as configurações nele estabelecidas.

Link para o comentário
Compartilhar em outros sites

  • Solução

Um arquivo binário nada más é que uma representação da memória. você pode guardar todos os dados em uma struct e enviar ao arquivo usando funções como fread e fwrite. O que vai ir parar no arquivo são inteiros, floats, chars, etc, A mesma forma de dados que está na memória.

Outra solução seria usar arquivos .INI

Link para o comentário
Compartilhar em outros sites

Boas,

 

Eu acho que entendi o que você quer fazer. Você precisa de um algoritmo próprio seu (seu próprio compilador e descompilador), que formate um conteúdo só texto por exemplo, ou um conjunto de imagens ou gráficos em um arquivo ilegível para qualquer pessoa que não tenha o algoritmo. Por e.g. no caso do Warcraft 3 a extensão .w3x é um conjunto de dados sobre o mapa do jogo, somente a desenvolvedora do jogo (Blizzard Entertainment) tem acesso ao algoritmo ou software que decodifica o conteúdo para algo legível (imagens, sons, NPC, spawn-points, etc). Isso me parece muito complexo, mas existem alguns compiladores/decompiladores distribuídos gratuitamente. Como no caso dos mapas do Half Life 1, extensão .bsp tem o Valve Hammer Editor[1][2]. No caso do S.T.A.L.K.E.R. - Call of Pripyat tem um ferramenta[3][4] desenvolvida pela comunidade para descompilar os arquivos .ltx se me lembro bem, e por aí vai. 

 

Sobre criar sua própria extensão eu não achei nada relevante na internet. Exceto a biblioteca <ios> do C++[5]. Você pode criar uma ordem leitura dos seus dados. Por exemplo: O programa abre tal arquivo, se a extensão for tal ele chama determinada função para decompilar/ler o conteúdo do mesmo. Alternativamente ele pode enviar o conteúdo descompilado para um arquivo de saída. No caso de editores de mapas de jogos, etc. O processo segue esse lógica, só que muito mais complexo.

 

Lista extensão arquivos conhecidas:

A a E: https://en.wikipedia.org/wiki/List_of_filename_extensions_(A–E)

F a L: https://en.wikipedia.org/wiki/List_of_filename_extensions_(F–L)

M a R: https://en.wikipedia.org/wiki/List_of_filename_extensions_(M–R)

S a Z: https://en.wikipedia.org/wiki/List_of_filename_extensions_(S–Z)

 

[1] - https://developer.valvesoftware.com/wiki/Valve_Hammer_Editor 

[2] - https://developer.valvesoftware.com/wiki/Category:Tools

[3] - http://www.moddb.com/tutorials/creating-your-first-stalker-call-of-pripyat-mod

[4] - http://www.moddb.com/games/stalker-call-of-pripyat/tutorials/editing-allspawn-in-stalker-using-acdcpl

[5] - http://www.cplusplus.com/reference/ios/

[]'s

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...