Erreur lors de compilation [Résolu]

Signaler
Messages postés
92
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
10 octobre 2005
-
Messages postés
92
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
10 octobre 2005
-
Salute (ui c'est encore moi )





Je fais un programme qui écrit et lit dans un fichier mais à la
compilation j'arrive à ce message. C'est dû à quoi s'il vous plait ?





error CS5001: Le programme 'c:\Documents and Settings\Machjaghjolu\Mes
documents\SharpDevelop Projects\Lol\bin\Debug\Test.exe' ne possède pas
de point d'entrée défini

20 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
90
Salut,
Le message est pourtant clair sur ce coup là :

public static void Main()
{
void FichierTexte(string nomFichier)
{ ....

=> tu ne peux pas imbriquer 2 méthodes :-)

public static void Main()
{
...
}

void FichierTexte(string nomFichier)
{
....
}

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Ce que tu as écrit c'est la déclaration de la fonction, maintenant il faut l'appeler dans Main:

private static void Main( )
{
FichierTexte( "MyFile" );
}
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
C'est ca que tu veux faire !?

// File1.cs


using Namespace2; // Référence !


namespace Namespace1
{
public class Class1
{
public static void Main( )
{
Class2.DoSomething( ); // Appel d'une methode static
}
}
}

// File2.cs


namespace Namespace2 // Ou alors le même namespace
{
public class Class2
{
public static void DoSomething( ) // déclarée en static.
{
System.Windows.Forms.MessageBox.Show( "Hello World !" );
}
}
}
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Pas de méthode Main dans ton programme..
Messages postés
92
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
10 octobre 2005

using System;

using System.IO;



namespace Test

{

class MainClass

{

void FichierTexte(string nomFichier)

{



Voilà comment commence mon programme ...



Si je rajoute la méthode Main :

using System;


using System.IO;





namespace Test


{


class MainClass


{

public static void Main()

{


void FichierTexte(string nomFichier)


{ ....

.....

}



Je me retrouve avec:

c:\Documents and Settings\Machjaghjolu\Mes documents\SharpDevelop Projects\Lol\Main.cs(15,3): error CS1513: } attendue



Ligne 15 alors qu'elle devrait se trouver ligne 50 par là...
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Ohlala.. lol.. Tu ne peux pas définir la fonction FichierTexte dans une autre fonction.. Là vraiment ton code il est pas bien structuré du tout..
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Oups, il m'a grillé..
Messages postés
92
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
10 octobre 2005

Encore désolé mais ... Si je mets comme celà :



public static void Main()

{

Là il n'y a rien..

}



void FichierTexte(string nomFichier)

{

Là il y a tout le code pour faire la lecture dans le fichier

}



Il n'y a que la première méthode qui s'éxecute..Désolé mais je débute (j'ai déjà précisé loool)
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Bon j'attends la réponse de Coq, qui va te dire qu'il faut appeler la fonction.. mais lui il va te mettre un exemple.. : )
Messages postés
92
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
10 octobre 2005

Vais me faire frapper moi . Merci de votre patience lol je débute à peine et c'est encore pour le projet (à la base c'est un projet Flash mdr).
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Naaan, c'est fait pour ca le forum.. : )
Messages postés
92
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
10 octobre 2005

Je vais faire capoter quelqu'un.. mais avant je me fais capoter à moi ..



Je mets la fonction





using System;

using System.IO;



namespace Test

{

class MainClass

{

void FichierTexte(string nomFichier)

{

......



dans un fichier vide, puis dans le fichier Main.cs je met :

private static void Main( )

{

FichierTexte(lenomdufichiervide.cs );

}




?? Là ça ne marche pas mais autant je m'y prend mal lol
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Tu as mis Main dans une classe !? Toute fonction doit être déclarée dans une classe.. Si ta classe n'est pas dans le même namespace tu ne dois pas oublier de rajouter les using correspondants.. De plus si tu ne mets pas "public" devant ta fonction tu ne peux pas l'utiliser depuis une autre classe, elle sera visible seulement dans la classe ou elle a éte declaree.. A savoir aussi, ta méthode doit être static sinon il faudra créer un objet de la classe pour y accéder..ca va tu arrives aàsuivre !?
Messages postés
92
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
10 octobre 2005

J'ai trouvé un gros livre de cours en pdf et j'ai lu ce qu'étais l'appel ..

Je ne comprend pas comment on se sert de la fonction return (surtout dans mon code..)

(Je pense que j'y suis presque lol)

Main.cs(56,15): error CS1520: Une méthode de classe, de structure ou d'interface doit posséder un type de retour



Je poste mon code:





using System;



namespace Test1

{

class Test

{

public static void FichierTexte(string nomFichier)

{

StreamReader sr = null;

StreamWriter sw = null;

string line;



try

{

if (! File.Exists(nomFichier))

{

// Le fichier n'existe pas. On le crée.

sw = new StreamWriter(nomFichier);


sw.WriteLine("Bonjour. Nous sommes le {0} et il est
{1} ",


DateTime.Now.ToLongDateString(),


DateTime.Now.ToLongTimeString());

sw.Close();

sw = null;

//
Remarque : On peut utiliser sw = File.AppendText(NomFichier) pour
ajouter

// du texte à un fichier existant

}



//
Ouverture du fichier et écriture du contenu du fichier sur la console

sr = new StreamReader(nomFichier);

Console.WriteLine("Début du fichier");

line = sr.ReadLine();

while (line != null)

{


Console.WriteLine(line);

line = sr.ReadLine();

}

Console.WriteLine("Fin du fichier");

}

finally

{

// Fermeture streamreader

if (sr != null) sr.Close();

// Fermeture streamwriter

if (sw != null) sw.Close();

}

}

public static Main()

{

FichierTexte()

}

}

}
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Vi un bon livre.. : )

Tu as oublié le type de retour..

public static void Main( ) { }
Messages postés
92
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
10 octobre 2005

Merci, je vais voir demain matin.

Je pense que je devrais m'en sortir avec la seconde méthode (celle où
tu fais appel à 2 feuilles). Je ne vais pas venir vous embêter
longtemps pour se projet (mais vu qu'un ami a besoin de ce logiciel
pour faire son projet...) et je vais apprendre le C# tranquillement :)



Bonne nuit
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Perso pour un petit projet comme ca je préfere tout mettre dans le même fichier, c'est plus simple.. Ne t'inquietes pas tu ne déranges personne.. a+
Messages postés
92
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
10 octobre 2005

Je viens de faire un petit test, ça a marcher .
Mais je crois que ce qui me pose le problème c'est le fait que le nom
de la méthode comporte quelque chose dans la parenthèse
FichierTexte(string nomFichier) ...



using System;

using System.Drawing;

using System.Windows.Forms;



namespace CaptureScreen4

{



public class MainForm : System.Windows.Forms.Form

{

public static void Test()

{

MessageBox.Show("Lol");

}

public static void Main(string[] args)

{

Test();

}

}

}
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Euh, pourquoi ça te pose un problème

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Messages postés
92
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
10 octobre 2005

Tout compte fait rien... Ca marche merci : ) ... Bientôt je serai de l'autre côté (réponse et pas poseur de question mdrrr)