CARREGAR IMAGEM DO DISCO MAIS RÁPIDO

 Tópico anterior Próximo tópico Novo tópico

CARREGAR IMAGEM DO DISCO MAIS RÁPIDO

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#496832 - 27/04/2021 16:31:16

FUTURA
.
Cadast. em:Maio/2004


Última edição em 28/04/2021 14:40:00 por FUTURA

Pessoal, muito se discute sobre melhor maneira de guardar imagens, eu salvo em uma pasta no disco, e na hora de mostrar executo um comando dir() antes, para ver se a imagem de determinado item existe, para não gerar erro.  O problema, é que em uma pasta com muitas imagens, o processo esta ficando lento, pois não é uma rotina que podemos colocar um indice. Alguma dica pra deixar o processo mais rápido ?




#496833 - 27/04/2021 17:32:26

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Última edição em 27/04/2021 17:33:34 por FABRICIOWEB

em vb net nao sei como verificar se existe um arquivo em c# eu verifico assim não demora pasta com 5mil arquivos de boa rapidim

if (File.Exists(diretorio + @'\temp\' + stringnome))
{
  File.Delete(diretorio + @'\temp\' + stringnome);
  }




#496834 - 27/04/2021 17:59:56

JABA
CABO FRIO
Cadast. em:Agosto/2005


Citação:
:
Pessoal, muito se discute sobre melhor maneira de guardar imagens, eu salvo em uma pasta no disco, e na hora de mostrar executo um comando dir() antes, para ver se a imagem de determinado item existe, para não gerar erro.  O problema, é que em uma pasta com muitas imagens, o processo esta ficando lento, pois não é uma rotina que podemos colocar um indice. Alguma dica pra deixar o processo mais rápido ?


Não precisa verificar se a imagem existe no diretório, basta você tratar a exceção que é disparada quando ela não se encontra lá.

_______________________________________________________________________________________________

Se a alma ou esprito so imateriais, como eles fazem para se localizar quando o corpo est em movimento?



#496835 - 27/04/2021 18:47:19

FUTURA
.
Cadast. em:Maio/2004


Citação:
:
em vb net nao sei como verificar se existe um arquivo em c# eu verifico assim não demora pasta com 5mil arquivos de boa rapidim

if (File.Exists(diretorio + @'    emp' + stringnome))
{
  File.Delete(diretorio + @'    emp' + stringnome);
  }


Postei errado, essa rotina ainda é em vb6, mas vou verificar o comando.

Citação:
  Não precisa verificar se a imagem existe no diretório, basta você tratar a exceção que é disparada quando ela não se encontra lá.


Pensei nisso tbm, é q tenho uma função em um módulo, e quando fiz dessa maneira, a variável de retorno à chamada da função, gerava um erro.

No caso, o comando q o fabricio citou, seria equivalente a um dir() no vb6, vou fazer uns testes..



#496840 - 28/04/2021 07:59:11

ACDONA
INDAIATUBA
Cadast. em:Janeiro/2009


Pode fazer algo assim:
  
Dim Caminho As String
        Caminho = 'c:\teste\texto.txt'
        Try
            File.Delete(Caminho)
        Catch ex As Exception
            ' trata o erro se não existir
        End Try



#496842 - 28/04/2021 09:44:36

LUIS2014
CURITIBA
Cadast. em:Agosto/2014


Pessoal, uma dúvida pegando carona o assunto.
como vocês tratam a inserção da imagem no cadastro? Me refiro ao tamanho da imagem, dependendo do tamanho ou ela estica ou perde resolução na exibição...



#496845 - 28/04/2021 12:27:30

FUTURA
.
Cadast. em:Maio/2004


Última edição em 28/04/2021 12:37:50 por FUTURA

Estou tentando montar a função assim:

Public Sub mostraimgpro(ByVal wscodpro As Long, nomeform As Form, nomecontrole As Object)

e chamá-la assim ( tenho mais de um form que mostra a imagem)

Call mostraimgpro(Val(txtcodpro), frmbuscapro, imgpro)  ( código to item, nome do formulário que chamou, e nome do controle image)  

Mas o método não esta sendo suportado.  Estou passando errado, ou não tem como uma função pública mostrar a imagem no controle do formulário que a chamou ?






Resposta escolhida #496849 - 28/04/2021 14:52:14

EPISCOPAL
VARZEA GRANDE
Cadast. em:Maio/2009


Citação:
Option Explicit

Private Const OF_EXIST         As Long = &H4000
Private Const OFS_MAXPATHNAME  As Long = 128
Private Const HFILE_ERROR      As Long = -1

Private Type OFSTRUCT
    cBytes As Byte
    fFixedDisk As Byte
    nErrCode As Integer
    Reserved1 As Integer
    Reserved2 As Integer
    szPathName(OFS_MAXPATHNAME) As Byte
End Type

Private Declare Function OpenFile Lib 'kernel32' (ByVal lpFileName As String, _
                        lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long

Public Function FileExists(ByVal Fname As String) As Boolean

    Dim lRetVal As Long
    Dim OfSt As OFSTRUCT
    
    lRetVal = OpenFile(Fname, OfSt, OF_EXIST)
    If lRetVal <> HFILE_ERROR Then
        FileExists = True
    Else
        FileExists = False
    End If
    
End Function


Sempre ouvi pelo vbmania que API são mais rápidas rsrsrsrs

____________________________________________________________________
Episcopal Studios


#496854 - 29/04/2021 08:42:28

CASTROGYN
GOIANIA
Cadast. em:Novembro/2018


Antes eu armazenava imagens e arquivo como você em disco. Agora armazeno tudo em banco de dados e meus problemas acabaram.



#496855 - 29/04/2021 08:44:00

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Citação:
:
Antes eu armazenava imagens e arquivo como você em disco. Agora armazeno tudo em banco de dados e meus problemas acabaram.

2



#496858 - 29/04/2021 13:26:52

FUTURA
.
Cadast. em:Maio/2004


Citação:
:
Option Explicit

Private Const OF_EXIST         As Long = &H4000
Private Const OFS_MAXPATHNAME  As Long = 128
Private Const HFILE_ERROR      As Long = -1

Private Type OFSTRUCT
    cBytes As Byte
    fFixedDisk As Byte
    nErrCode As Integer
    Reserved1 As Integer
    Reserved2 As Integer
    szPathName(OFS_MAXPATHNAME) As Byte
End Type

Private Declare Function OpenFile Lib 'kernel32' (ByVal lpFileName As String, _
                        lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long

Public Function FileExists(ByVal Fname As String) As Boolean

    Dim lRetVal As Long
    Dim OfSt As OFSTRUCT
    
    lRetVal = OpenFile(Fname, OfSt, OF_EXIST)
    If lRetVal <> HFILE_ERROR Then
        FileExists = True
    Else
        FileExists = False
    End If
    
End Function

Sempre ouvi pelo vbmania que API são mais rápidas rsrsrsrs


Cara, fica bom isso viu.. melhorou bem o desempenho da consulta. Vlw.



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por FUTURA em 29/04/2021 13:27:22