Créér/modifier un fichier sur un serveur ftp

Radion Messages postés 29 Statut Membre -  
NookZ Messages postés 2376 Statut Membre -
Bonjour,
J'ai beau chercher avec mon meilleur ami google, mais je ne trouve rien d'interessant ou de compréhensible. Si quelqu'un sait comment modifier ou créér un fichier en visual basic. Je sais le faire, mais seulement sur mon disque dur. Je voudrais le faire sur un serveur ftp. Je pense qu'il y a une différence avec la création de fichier sur mon disque, c'est le chemin du fichier non? J'ai beau essayer http://www.Monsite.com/ini/test.ini ou ftp://ftp.monsite.com/www/ini/test.ini mais rien ne marche =(
Merci de votre compréhension
Radion
A voir également:

24 réponses

NookZ Messages postés 2376 Statut Membre 514
 
il faut envoyer votre fichier par le biais d'un logiciel tel que Filezilla vers votre site.
0
Radion Messages postés 29 Statut Membre
 
Oui, j'utilise Filezilla pour le transfert de fichier, mais je voudrais en modifier ou créér un à partir d'un code Visual Basic et non manuellement.
0
Radion Messages postés 29 Statut Membre
 
SVP j'ai vraiment besoin de cette information ! Et le titre ne le précise pas, mais je voudrais le faire en VISUAL BASIC !
0
Radion Messages postés 29 Statut Membre
 
PLZ Ca doit pas être bien compliqué ? j'ai vraiment tout essayer mais je ne sais plus quoi faire =( svp
0
NookZ Messages postés 2376 Statut Membre 514
 
est-ce que vous avez fait une web app ou c'est juste un fichier VB à part?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Radion Messages postés 29 Statut Membre
 
c'est un fichier d'interface VB avec des contrôles, et quand on clic sur un bouton, un fichier X est créér sur un serveur ftp, mais cela ne marche pas.
0
NookZ Messages postés 2376 Statut Membre 514
 
avez-vous récupérer un message d'erreur?
Si non entourez le code de votre création de fichier d'un
try{
'code création
}
Catch ex As Exception
Response.Write(ex.ToString)
'ou autre méthode d'écriture de l'erreur à 'lécran
End Try
0
Radion Messages postés 29 Statut Membre
 
j'essay tout de suite
0
Radion Messages postés 29 Statut Membre
 
quand je met les { et } ils me disent "erreur de syntaxe" est-ce normal? j'essaye sans
0
NookZ Messages postés 2376 Statut Membre 514
 
ah oui pardon, faut pas les mettre, je bosse sur plusieurs langages en même temps, donc parfois je me perds :s
0
Radion Messages postés 29 Statut Membre
 
Ils me disent une erreur de conversion String Invalid.CastException mais ce n'est pas le problème car en fait lorsque je clic sur le bouton qui créé un fichier, cela ne fait rien, pas une erreur, et lorsque que j'affiche les données du fichier, il me disent naturellement que le fichier n'existe pas et l'erreur est de type conversion en String mais cela n'arrange pas les choses
0
NookZ Messages postés 2376 Statut Membre 514
 
Pouvez-vous copier ici le contenu de votre page, ainsi que le contenu de l'erreur?
0
Radion Messages postés 29 Statut Membre
 
Public Class Form1
    'Fonction lisant une string
    Declare Function GetPrivateProfileString Lib "Kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Short, ByVal lpFileName As String) As Integer

    'Fonction écrivant une string
    Declare Function WritePrivateProfileString Lib "Kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lplFileName As String) As Long

    Function Get_Private_Profile_String(ByVal cAppName As String, ByVal cKeyName As String, ByVal cKeyDefault As String, ByRef cKeyValue As String, ByVal cProfName As String) As Integer
        '
        ' LIRE UNE STRING
        ' Parametres:
        ' cAppName Correspond à [Rubrique]
        ' cKeyName Nom de l'entrée, de la clé
        ' cKeyDefault Valeur par défaut de la chaîne cherchée
        ' cKeyValue Valeur lue en face de l'Entrée ou cKeyDefault si l'Entrée est vide
        ' cProfName Nom du Fichier "INI" Privé
        '
        ' Sortie:
        ' Valeur lue dans cKeyValue
        ' La fonction retourne le nombre de caractères dans cKeyValue
        Dim iReaded As Integer
        Const sLongueur As Short = 255
        If cKeyName = "" Then
            cKeyValue = Space$(1025)
            iReaded = GetPrivateProfileString(cAppName, "", "", cKeyValue, 1024, cProfName)
        Else
            cKeyValue = Space$(255)
            iReaded = GetPrivateProfileString(cAppName, cKeyName, cKeyDefault, cKeyValue, sLongueur, cProfName)
        End If
        cKeyValue = Trim$(cKeyValue)
        Get_Private_Profile_String = iReaded
    End Function

    Function Put_Private_Profile_String(ByVal cAppName As String, ByVal cKeyName As String, ByVal cKeyValue As String, ByVal cProfName As String) As Boolean
        ' ECRIRE UNE STRING
        ' Parametres:
        ' cAppName Correspond à [Rubrique]
        ' cKeyName Nom de l'entrée de la clé
        ' cKeyValue Valeur lue en face de l'Entrée ou cKeyDefault si l'Entrée est vide
        ' cProfName Nom du Fichier "INI" Privé
        '
        ' Sortie:
        ' La fonction retourne True si cela a marché
        Dim Status As Long
        Status = WritePrivateProfileString(cAppName, cKeyName, cKeyValue, cProfName)
        If (Status <> 0) Then
            Put_Private_Profile_String = True
        Else
            Put_Private_Profile_String = False
        End If
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'declaration des variables
        Dim cRubrique As String
        Dim cStat As String
        Dim cValue As Integer
        Dim cPath As String
        Dim istat As Integer
        'entrez les valeurs
        cPath = InputBox("Entrez le chemin du fichier à voir")
        cRubrique = InputBox("Entrez la rubrique dans laquelle se situe l'attribut est situé")
        cStat = InputBox("Entrez l'attribut qui est à afficher")
        'affiche la valeur voulue
        istat = Get_Private_Profile_String(cRubrique, cStat, "", cValue, cPath)
        MsgBox(Trim(cValue))
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'declaration variable
        Dim cNewRubrique As String
        Dim cNewStat As String
        Dim cNewValue As Integer
        Dim cNewPath As String
        'entrez les valeurs
        cNewPath = InputBox("Entrez le chemin du fichier à créér/modifier")
        cNewRubrique = InputBox("Entrez la rubrique à ajouter/modifier.")
        cNewStat = InputBox("Entrez l'attribut à ajouter/modifier.")
        cNewValue = InputBox("Entrez la valeur à ajouter/modifier.")
        'ajouter/modifier la valeur
        Dim bOk As Boolean
        bOk = Put_Private_Profile_String(cNewRubrique, cNewStat, cNewValue, cNewPath)
    End Sub
End Class


J'ai du mal à m'exprimer, mais l'erreur n'est pas causée par le disfonctionnement du programme. Je m'explique : lorsque que je créé un fichier sur mon disque dur (c:\), il le créé. Et lorsque je le créé sur un serveur ftp, le fichier n'st pas créé mais aucun message d'erreur s'affiche. C'est seulement lorsque que j'essaye d'afficher les données du fichier, l'erreur me dis en quelque sorte que le fichier n'existe pas, ce qui est normal puisqu'il n'est pas créé précedemment.
0
NookZ Messages postés 2376 Statut Membre 514
 
A vrai dire, je n'ai même pas vu à quel endroit vous créez votre fichier -_- (c'est peut-être la fatigue)
0
Radion Messages postés 29 Statut Membre
 
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'declaration variable
        Dim cNewRubrique As String
        Dim cNewStat As String
        Dim cNewValue As Integer
        Dim cNewPath As String
        'entrez les valeurs
        cNewPath = InputBox("Entrez le chemin du fichier à créér/modifier")
        cNewRubrique = InputBox("Entrez la rubrique à ajouter/modifier.")
        cNewStat = InputBox("Entrez l'attribut à ajouter/modifier.")
        cNewValue = InputBox("Entrez la valeur à ajouter/modifier.")
        'ajouter/modifier la valeur
        Dim bOk As Boolean
        bOk = Put_Private_Profile_String(cNewRubrique, cNewStat, cNewValue, cNewPath)

C'est lorsque que je clic sur le bouton 2, je choisi le chemin du fichier, si le fichier n'existe pas, il est créé. La variable cNewPath désigne le chemin du fichier (ex : c: \ test.ini)
0
NookZ Messages postés 2376 Statut Membre 514
 
Dans ce morceau de code il n'y a aucune création de fichier :s
0
Radion Messages postés 29 Statut Membre
 
Eh bien pourtant cela marche.
C'est la fonction déclarée au début WritePrivateProfileString et PutPrivateProfileString
(ps: le code n'est pas de moi, il sert à écrire et lire les données d'un fichier texte, txt ou ini et j'essay de l'appliquer dans un programme mais en mettant le chemin d'un fichier sur le ftp, le fichier en question n'est pas créé)
0
NookZ Messages postés 2376 Statut Membre 514
 
oula d'accord, j'avais pas bien compris, bien je vais y réfléchir
0
Radion Messages postés 29 Statut Membre
 
Mais revenons au problème. Je vais utiliser un exemple bête et simple à comprendre

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

Admettons que j'enregistre un fichier avec bloc-note.
Le chemin du fichier est c: \ blocnote \ test.txt

Quel serais le chemin du fichier si je l'enregistre sur un serveur ftp ?
Sera-t-il http://www.monsite.com/blocnote/test.txt ?
Ou bien ftp://ftp.monsite.com/www/blocnote/test.txt ?
Ou autre chose?

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

Je sais que c'est impossible d'enregistrer un fichier sur un serveur ftp sans passer par un logiciel mais je voudrais savoir l'equivalent du chemin lorsque l'on veut accéder sur le serveur ftp
0
NookZ Messages postés 2376 Statut Membre 514
 
Désolée pour le double-post

Bref en fait le problème est que pour accéder à des fichiers sur un FTP il faut s'y connecter.
Ce ci devrait pouvoir vous y aider :
http://www.15seconds.com/issue/981203.htm
0
Radion Messages postés 29 Statut Membre
 
Merci, cela se rapproche plus de la question
Mais je ne pratique pas parfaitement l'anglais donc je comprends presque rien.
Es-ce que vous savez déjà comment se connecter à un serveur ftp (username, password...)en VB pour pouvoir y accéder comme je voudrais le faire?
Ou alors pouvez-vous me faire un bref résumé de ce que le site dit ?
Merci d'avance
0
NookZ Messages postés 2376 Statut Membre 514
 
' mise en place de l'environnement
lngINet = InternetOpen(“MyFTP Control”, 1, vbNullString, vbNullString, 0)

'connexion
'2ème param : adresse IP ou host name de votre ftp
' 1er, 3ème, 6ème, 7ème et 8ème params à garder
' 4 et 5 : nom utilisateur et password
lngINetConn = InternetConnect(lngINet, “ftp.microsoft.com”, 0, _
“anonymous”, “wally@wallyworld.com”, 1, 0, 0)

après y'a sûrement une fonction qui permet de créer un fichier en tout cas y'a
blnRC = FtpGetFile(lngINetConn, “dirmap.txt”, “c:\dirmap.txt”, 0, 0, 1, 0)

pour en récupérer un...


Voici le nom de la librairie : WinINet DLL
0
Radion Messages postés 29 Statut Membre
 
Merci beaucoup , je pense que c'est ce qu'il me faut. Je le test sur le champs
0
Radion Messages postés 29 Statut Membre
 
Par contre les variables ne sont pas déclarée, ce sont les librairies qui les contiennent? comment les utiliser?
0
NookZ Messages postés 2376 Statut Membre 514
 
lngINet est un Long donc Dim lngINet as Long
lngINetConn est aussi un Long

et le FtpGetFile renvoie un boolean.
0
Radion Messages postés 29 Statut Membre
 
Merci, mais il reste InternetOpen et InternetConnect de non-déclaré et je pense que cela marchera =)
0
NookZ Messages postés 2376 Statut Membre 514
 
Il faut sûrement que vous récupériez la DLL dont je vous ai donné le nom au-dessus, si vous ne l'avez aps encore ou faire un imports sinon.
0