Conversion VB to C# [FileGet]

Messages postés
5
Date d'inscription
samedi 28 mai 2011
Statut
Membre
Dernière intervention
3 juin 2011
- - Dernière réponse : nhervagault
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
- 3 juin 2011 à 21:23
Bonsoir,

je souhaite convertir une source VB en C# mais je bloque sur l'élément FileGet() qui n'existe pas dans C# et je n'arrive pas à le reproduire...

mon code VB.net ressemble à ceci :
Imports System.IO
Public Class Form1

    Dim stub, text1 As String
    Const FileSplit = "@FileSplit@"

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        text1 = TextBox1.Text
        FileOpen(1, Application.StartupPath & "\stub.exe", OpenMode.Binary, OpenAccess.Read, OpenShare.Default)
        stub = Space(LOF(1))
        FileGet(1, stub)
        FileClose(1)
        If File.Exists("programme.exe") Then
            My.Computer.FileSystem.DeleteFile("programme.exe")
        End If
        FileOpen(1, Application.StartupPath & "\programme.exe", OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.Default)
        FilePut(1, stub & FileSplit & text1)
        FileClose(1)
    End Sub
End Class


Et voici la "traduction" que j'ai faite en C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;


namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string stub;
    string text1;
        const string FileSplit = "@FileSplit@";

        private void Button1_Click(object sender, EventArgs e)
        {
            text1 = TextBox1.Text;	 	                        
            FileStream ouvreStub = File.Open(Application.StartupPath + "\\stub.exe", FileMode.Open, FileAccess.Read, FileShare.None);
            String test = new String(' ', (int)ouvreStub.Length);
            stub = test;
    
            // LE PROBLEME ...
            FileGet(1, stub);


            ouvreStub.Close();

    if (File.Exists("programme.exe")) 
            {
                File.Delete("programme.exe");
    }

            FileStream ouvreProgramme = File.Open(Application.StartupPath + "\\programme.exe", FileMode.Open, FileAccess.ReadWrite, FileShare.None);
            BinaryWriter bw = new BinaryWriter(ouvreProgramme);
            bw.Write(stub + FileSplit + text1);
            ouvreProgramme.Close();
        }
    }
}


Bien entendu je ne suis pas sur que ma conversion est totalement correct et je ne le saurais que lorsque j'aurais fini...

Mais pour l'instant c'est le "FileGet(1, stub);" qui me pose problème et je suis un peu perdu...

J'espère que vous saurez m'aider.

Merci
Afficher la suite 

5 réponses

Messages postés
153
Date d'inscription
lundi 22 mars 2010
Statut
Membre
Dernière intervention
17 juin 2011
1
0
Merci
Ca sert à quoi FileGet ?
Commenter la réponse de smathis
Messages postés
5
Date d'inscription
samedi 28 mai 2011
Statut
Membre
Dernière intervention
3 juin 2011
0
Merci
Sur msdn ils disent sa : Lit les données d'un fichier disque ouvert et les place dans une variable.
Commenter la réponse de bettyblues
Messages postés
153
Date d'inscription
lundi 22 mars 2010
Statut
Membre
Dernière intervention
17 juin 2011
1
0
Merci
Mais dans ton code tu l'utilises pour faire quoi ?
Parce que tu l'affectes à rien du tout. Donc je ne vois pas à quoi sert la ligne, mais je ne connais pas le VB.
Commenter la réponse de smathis
Messages postés
5
Date d'inscription
samedi 28 mai 2011
Statut
Membre
Dernière intervention
3 juin 2011
0
Merci
Bin heu sa lit le fichier 1 (stub.exe) et le place dans la variable stub ^^
Commenter la réponse de bettyblues
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
21
0
Merci
Salut,

Expliques ce que tu veux, comment tu veux lire ton fichier.
Les fonctions de VB que tu utilises ne devrait plus etre utilisees elles sont la pour la compatibilite avec les dev en vb6.

Utilises un streamreader a la place
http://msdn.microsoft.com/en-us/library/f2ke0fzy.aspx

Bon dev
Commenter la réponse de nhervagault