Conversion VB to C# [FileGet]

Signaler
Messages postés
5
Date d'inscription
samedi 28 mai 2011
Statut
Membre
Dernière intervention
3 juin 2011
-
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
-
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

5 réponses

Messages postés
153
Date d'inscription
lundi 22 mars 2010
Statut
Membre
Dernière intervention
17 juin 2011
1
Ca sert à quoi FileGet ?
Messages postés
5
Date d'inscription
samedi 28 mai 2011
Statut
Membre
Dernière intervention
3 juin 2011

Sur msdn ils disent sa : Lit les données d'un fichier disque ouvert et les place dans une variable.
Messages postés
153
Date d'inscription
lundi 22 mars 2010
Statut
Membre
Dernière intervention
17 juin 2011
1
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.
Messages postés
5
Date d'inscription
samedi 28 mai 2011
Statut
Membre
Dernière intervention
3 juin 2011

Bin heu sa lit le fichier 1 (stub.exe) et le place dans la variable stub ^^
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
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