p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Invité régulier
    Inscrit en
    avril 2006
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : avril 2006
    Messages : 18
    Points : 5
    Points
    5

    Par défaut Traduction c# en vb.net

    Bonjour à tous,

    Je chercher à remplacer une image dans un fichier docx en openXML.

    J'ai trouvé un morceau de code qui fait cela par contre il est en C# et je n'arrive pas à le traduit en Vb.net, voici la partie qui me pose problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
     SdtBlock cc = doc.MainDocumentPart.Document.Body.Descendants<SdtBlock>()
                        .FirstOrDefault(c =>
                        {
                            SdtProperties p = c.Elements<SdtProperties>().FirstOrDefault();
                            if (p != null)
                            {
                                // Is it a picture content control?
                                SdtContentPicture pict =
                                    p.Elements<SdtContentPicture>().FirstOrDefault();
                                // Get the alias.
                                SdtAlias a = p.Elements<SdtAlias>().FirstOrDefault();
                                if (pict != null && a.Val == "MyPicture")
                                    return true;
                            }
                            return false;
                        });
    Voici ce que j'ai traduit mais j'ai toujours des erreurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    Dim cc As SdtBlock = doc.MainDocumentPart.Document.Body.Descendants(Of SdtBlock)().FirstOrDefault(Function(c))
            Dim p As SdtProperties = c.Elements(Of SdtProperties)().FirstOrDefault()
            If (p IsNot Nothing) Then
                ' Is it a picture content control?
                Dim pict As SdtContentPicture = p.Element(Of SdtContentPicture)().FirstOrDefault()
                ' Get the alias.
                Dim a As SdtAlias = p.Elements(Of SdtAlias)().FirstOrDefault()
                If (pict IsNot Nothing And a.Val = "MyPicture") Then
                    Return True
                End If
            End If
         Return False
    Merci pour votre aide.

  2. #2
    Rédacteur/Modérateur



    Homme Profil pro
    Développeur .NET
    Inscrit en
    février 2004
    Messages
    19 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2004
    Messages : 19 523
    Points : 40 013
    Points
    40 013

    Par défaut

    Ton problème est ici :

    FirstOrDefault(Function(c))
    Tu passes une fonction vide en paramètre de FirstOrDefault, alors que dans le code C# cette fonction continue jusqu'à la fin du code...

    Essaie ce convertisseur si tu ne veux pas faire la conversion manuellement. Ca donne quelque chose comme ça :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim cc As SdtBlock = doc.MainDocumentPart.Document.Body.Descendants(Of SdtBlock)().FirstOrDefault(Function(c) 
        Dim p As SdtProperties = c.Elements(Of SdtProperties)().FirstOrDefault()
        If p IsNot Nothing Then
            ' Is it a picture content control?
            Dim pict As SdtContentPicture = p.Elements(Of SdtContentPicture)().FirstOrDefault()
            ' Get the alias.
            Dim a As SdtAlias = p.Elements(Of SdtAlias)().FirstOrDefault()
            If pict IsNot Nothing AndAlso a.Val = "MyPicture" Then
                Return True
            End If
        End If
        Return False
     
        End Function)

Discussions similaires

  1. Problème de traduction C++ vers VB.net
    Par ne2sbeal dans le forum VB.NET
    Réponses: 3
    Dernier message: 26/01/2009, 17h41
  2. Traduction C# vers VB.Net
    Par papawemba dans le forum VB.NET
    Réponses: 1
    Dernier message: 28/06/2008, 09h54
  3. Traduction VBA en VB.NET
    Par tirixil dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/11/2007, 13h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo