none
Forma de apresentação da informação RRS feed

  • Pergunta

  • Forma de apresentação da informação.

     

    Amigos,

    Preciso fazer um for next em uma classe Win32 qualquer que vai me apresentar a quantidade de um preriférico existente. Pois bem, ao listar valores maiores que 1, preciso fazer uma condição para o mesmo elemento da seguinte forma

    If nº de itens > 1 Then

                Apresenta todos os itens, menos o último.

    Else

                Apresenta apenas o item existente que é igual a 1.

    End If

    If item = último item existente Then

    Apresenta apenas o último item do For Next.

    End If

    Alguém pode me ajudar nisto?

     

     

     

    segunda-feira, 9 de outubro de 2006 07:02

Respostas

  •  

    'Primeiro conta os intens

    for each obj in objWMI

        contador=contador+1

    next

    If contador > 1 Then

           'Apresenta todos os itens, menos o último.

        for each obj in objWMI

            atual=atual+1

            if not atual=contador then

                wscript.echo obj("propriedade x")

            else

                valor_ultimoitem=obj("propriedade x")

            end if

        next

    Else

                'Apresenta apenas o item existente que é igual a 1.

            if contador=1 then

            wscript.echo obj("propriedade x")

            valor_ultimoitem=obj("propriedade x")

       end if

    End If

    'Apresenta apenas o último item do For Next. - Bom se tiver items sempre vair ter um último

    if contador>0 then

        wscript.echo valor_ultimoitem

    end if

    terça-feira, 10 de outubro de 2006 12:41
    Moderador

Todas as Respostas

  • A única forma que conheço é fazendo a contagem:

    for each obj in objWMI

        contador=contador+1

        objWMI.movenext

    next

     

    segunda-feira, 9 de outubro de 2006 20:20
    Moderador
  • Mas Você possui um exemplo mais completo?

    Preciso executar funções iguais que resultarão em resultados de aparência direferentes, porém preciso que uma destas condições apenas me apresente todos os valores menos o último e na outra condição, que me apresente apenas o últmi valor.

     

    Com estas informações poderei montar o quadro da forma que preciso. Com todas as informações, porém a 1º condição frmatando a visualização de corpo e a 2º o que ficaria no rodapé.

    segunda-feira, 9 de outubro de 2006 21:04
  •  

    'Primeiro conta os intens

    for each obj in objWMI

        contador=contador+1

    next

    If contador > 1 Then

           'Apresenta todos os itens, menos o último.

        for each obj in objWMI

            atual=atual+1

            if not atual=contador then

                wscript.echo obj("propriedade x")

            else

                valor_ultimoitem=obj("propriedade x")

            end if

        next

    Else

                'Apresenta apenas o item existente que é igual a 1.

            if contador=1 then

            wscript.echo obj("propriedade x")

            valor_ultimoitem=obj("propriedade x")

       end if

    End If

    'Apresenta apenas o último item do For Next. - Bom se tiver items sempre vair ter um último

    if contador>0 then

        wscript.echo valor_ultimoitem

    end if

    terça-feira, 10 de outubro de 2006 12:41
    Moderador
  • Amigo,

    Fico grato que tenha ajudado, pois isto faz parte para complementar o projeto PCeX que estava parado.

    Fico muito agradecido por sua contribuição.

    Se puder me passar depois seu nome e e-mail para figurar no programa.

    terça-feira, 10 de outubro de 2006 14:35
  • Amigo tentei aqui, mas está difícil.

    Vou postar parte do código para entender o que estou tentando fazer.

    A estrutura em xhtml da forma como vai realizando a montagem das informações, é necessário colocar uma linha para diferenciar um ítem de outro.

    Aqui é o código original:

    -----------------------------------------------------------

    Function GetMedia()
    On Error Resume Next

      sRel = StartWindows("7a", "Multimídia")
      sRel = sRel & DivLine1("divup1", "Centro de Multimídia")
      sRel = sRel & DivLine1("divup2", "Dispositivos de Audio")

     strProperties = "Name, ProductName, Manufacturer"
     objClass = "Win32_SoundDevice"
     strQuery = "SELECT " & strProperties & " FROM " & objClass
     Set colSound = objWMI.ExecQuery(strQuery, "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
     For Each objItem in colSound
      Count_Sound = Count_Sound + 1
      Sound_Name = objItem.Name
      Sound_ProdName = objItem.ProductName
      Sound_Fab = objItem.Manufacturer
      sRel = sRel & WrtLine5("105", "Nome do dispositivo:", "187", Sound_Name, "90", "Nome do Produto:", "201", Sound_ProdName)
      sRel = sRel & WrtLine4("63", "Fabricante:", "536", Sound_Fab)
      sRel = sRel & WrtLine3("linestyle2")
     Next
     If Count_Sound = 0 Then
      sRel = sRel & OutNull1(VarMsg6)
      sRel = sRel & WrtLine3("linestyle2")
     End If

      sRel = sRel & DivLine1("divup2", "Dispositivo de Mídia")

     strProperties = "Name, Drive, Manufacturer, MediaLoaded"
     objClass = "Win32_CDROMDrive"
     strQuery = "SELECT " & strProperties & " FROM " & objClass
     Set colCD = objWMI.ExecQuery(strQuery, "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
     For Each objItem in colCD
      Count_CD = 0
      Count_CD = Count_CD + 1
      CD_Name = objItem.Name
      CD_Drive = objItem.Drive
      CD_Fab = objItem.Manufacturer
      CD_MediaLoad = GetMediaLoad(objItem.MediaLoaded)

      sRel = sRel & WrtLine5("105", "Nome do dispositivo:", "187", CD_Name, "90", "Letra da unidade:", "201", CD_Drive)
     If Count_CD > 0 Then
      For i = 1 To Count_CD
      If (Count_CD.Count = Count_CD.Last) Then

    ' Aqui apresento todos os ítens menos o último colocando que cada item terá uma linha divisória
       sRel = sRel & WrtLine5("105", "Fabricante:", "187", CD_Fab, "90", "Mídia:", "201", CD_MediaLoad)
       sRel = sRel & WrtLine3("linestyle2")
      Else

    ' E aqui coloca o últmi ítem de a linha divisória
       sRel = sRel & WrtLine5a("105", "Fabricante:", "187", CD_Fab, "90", "Mídia:", "201", CD_MediaLoad)
      End If
      Next
     End If
     Next
     If Count_CD = 0 Then
      sRel = sRel & OutNull1(VarMsg6)
      'sRel = sRel & WrtLine3("linestyle2")
     End If
      sRel = sRel & EndWindows()
     GetMedia = sRel
    End Function

    -----------------------------------------------------------

     

    Aqui é o que Eu tentei fazer com o que me passou:

    ------------------------------------------------------------

     If Count_CD > 1 Then
      For Each objItem in colCD
       atual = atual + 1
       If Not atual = contador Then
        sRel = sRel & WrtLine5("105", "Nome do dispositivo:", "187", CD_Name, "90", "Letra da unidade:", "201", CD_Drive)
        sRel = sRel & WrtLine5("105", "Fabricante:", "187", CD_Fab, "90", "Mídia:", "201", CD_MediaLoad)
        sRel = sRel & WrtLine3("linestyle2")
       End If
      Next
     Else
      If Count_CD = 1 Then
      sRel = sRel & WrtLine5("105", "Nome do dispositivo:", "187", CD_Name, "90", "Letra da unidade:", "201", CD_Drive)
      sRel = sRel & WrtLine5a("105", "Fabricante:", "187", CD_Fab, "90", "Mídia:", "201", CD_MediaLoad)
      End If
     End If

     If Count_CD > 0 Then
      sRel = sRel & WrtLine5("105", "Nome do dispositivo:", "187", CD_Name, "90", "Letra da unidade:", "201", CD_Drive)
      sRel = sRel & WrtLine5a("105", "Fabricante:", "187", CD_Fab, "90", "Mídia:", "201", CD_MediaLoad)
     End If
    -----------------------------------------------------------

     

     

     

    terça-feira, 10 de outubro de 2006 17:09
  • Aqui http://www.artur.aragao.oi.com.br/ o exemplo. Em Multimídia, subitem Dispositivos de Mídia.
    terça-feira, 10 de outubro de 2006 17:16
  • Estou vendo a página que você postou.

    O problema é aquela linha divisória a mais no final do Multimidia? Se não onde está o problema naquela página?

    terça-feira, 10 de outubro de 2006 18:35
    Moderador
  • Eliminar a última linha.

    Bem,

    Já pensei em outra forma de resolver isto, mas caso possa me ajudar com alguma idéia, por favor, peço que fique à vontade.

    terça-feira, 10 de outubro de 2006 20:41
  • Amigo,

    Resolvi desta forma artur.aragao.oi.com.br. Visualizar no IE7.

    quarta-feira, 11 de outubro de 2006 15:48