Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Lecture ligne par ligne [ Algorithme / Autre ] (craftsystem)

lundi 3 décembre 2007 à 14:07:58 | Lecture ligne par ligne

craftsystem

Salut a tous

après un moment d'absence je suis revenus sur mon project initiale
LVL++ mais bon avec plus de recule....
Bref

Suite au code que ma donné Foxy que je remercie au passag:
se code analyse ligne par ligne un fichier text. Moi je voudrais faire un Jump
en gros:

j'aimerais repprendre la lecture sur une ligne précise.

Instruction exemple de mon programme:

msg"Ceci est un test"
--> "good"
msg"Pas de saut"
fin
good:
msg"Saut effectuer"
fin


toute c'est instruction fonctionne normalement sauf une:
--> "good"
vous l'avez compris j'aurais souhaité que l'analyse saute a se moment précis à:
good:

quelqu'un pourrais t'il m'aidé.

Merci d'avance voici mon code:


procedure TEditor.FormCreate(Sender: TObject);
var  sprocess3,  sGo, sCopy, MSGend: ansistring;
  N, msgPos, INT: integer;
  ini: TiniFile;
label start;
begin
  listbox1.Clear;
  self.Caption := ParamStr(1);
  if self.Caption = '' then
    self.Caption := 'Script Editor by Craft'
  else
    txtedition.lines.loadfromfile(ParamStr(1));
//=========================================================================
//=========================================================================
  begin
    txtedition.Lines.BeginUpdate;
    try
      for N := 0 to txtedition.Lines.Count - 1 do
        start:
      begin

        sGo := txtedition.Lines[N];
        sprocess3 := Copy(sgo, 1, 3);
//===================================FIN===================================
        if sprocess3 = 'fin' then
          Break
//===============================MESSAGEBOX================================
        else if sprocess3 = 'msg' then
//Cherche une chaine de caractère commençant par ' " '.
          while true do begin // si il y en a une...
            msgPos := Pos('"', sGo);
            if msgpos <> 0 then begin
              sCopy := Copy(sGo, msgPos + 1, Length(sGo));
              if pos('"', scopy) > 0 then begin
                MSGend := '"' + copy(scopy, 1, pos('"', scopy));
                delete(sgo, msgpos + 1, length(MSGend));
              end
              else break; // pas de fin de chaine marque par guillemet
              MSGEND := StrReplace(chr(34), '', MSGend);
              showmessage(MSGend); // ---------------dans MSGend ya ton mot
            end
            else break;
          end
//==============================STRING==================================
        else if sprocess3 = 'str' then
          while true do begin
            msgPos := Pos('"', sGo);
            if msgpos <> 0 then begin
              sCopy := Copy(sGo, msgPos + 1, Length(sGo));
              if pos('"', scopy) > 0 then begin
                MSGend := '"' + copy(scopy, 1, pos('"', scopy));
                delete(sgo, msgpos + 1, length(MSGend));
              end
              else break;
              ini := tinifile.Create('C:\Lvl.ini');
              MSGEND := StrReplace(chr(34), '', MSGend);
              ini.WriteString('STRING', Msgend, Msgend);
              Listbox1.Items.Add('Str: ' + MSGend);
              ini.Free
            end
            else break;
          end
//===============================INTEGER================================
        else if sprocess3 = 'int' then
          while true do begin
            msgPos := Pos('"', sGo);
            if msgpos <> 0 then begin
              sCopy := Copy(sGo, msgPos + 1, Length(sGo));
              if pos('"', scopy) > 0 then begin
                MSGend := '"' + copy(scopy, 1, pos('"', scopy));
                delete(sgo, msgpos + 1, length(MSGend));
              end
              else break;
              ini := tinifile.Create('C:\Lvl.ini');
              MSGEND := StrReplace(chr(34), '', MSGend);
              INT := strtoint(MSGend);
              ini.WriteInteger('INTEGER', Msgend, INT);
              Listbox1.Items.Add('Int: ' + MSGend);
              ini.Free
            end
            else break;
          end
//===============================JUMP================================
        else if sprocess3 = '-->' then
          while true do begin
            msgPos := Pos('"', sGo);
            if msgpos <> 0 then begin
              sCopy := Copy(sGo, msgPos + 1, Length(sGo));
              if pos('"', scopy) > 0 then begin
                MSGend := '"' + copy(scopy, 1, pos('"', scopy));
                delete(sgo, msgpos + 1, length(MSGend));
              end
              else break;
              MSGEND := StrReplace(chr(34), '', MSGend);
              msgPos := Pos(MSGEND + ':', sGo);
              msgPos := n;
              goto start;
            end
            else break;
          end

      end;
    finally
      txtedition.Lines.EndUpdate;
    end;
  end;
end;



La Force 2 La Mao C Sa Diversité




Cette discussion est classé dans : end, msgend, sgo, msgpos, scopy


Répondre à ce message

Sujets en rapport avec ce message

probleme dans mon programme [ par tarik ] monsieur kerad je crois que j'ai un bug dans mon programme ci-dessousprocedure TForm1.Button1Click(Sender: TObject);begintable1.open;try Table1.First urgent : code à corriger. Cela fait des jours que je suis dessus !!!!!! [ par Marcel ] Le code qui suit sert à créer un compte à rebours. Les 2 dernières lignes de ce code sont incorrecte car le compilateur signale:[Erreur]Unit1.pas(56): Erreur: Declaration forward ... [ par Lénaïc ] Avec le code ci-dessous j'ai une erreur "Déclaration forward ou external non satisfaite: 'TFrm_Perso.ComboAddFile'".Je n'arrive pas à trouver l'erreur Pb sur une classe pile [ par ninuko ] Aider moi, au secour!!!! URGENT!!!!!unit UntClasPile; { UntClasPile porteuse de la Classe pile Cette classe permet de : raise Exception.Create : gérer les exceptions ? [ par manudel ] Voilà je ne sais pas comment "catcher" une exception.L'exception se déclenche, et à mon avis remonte au niveau le plus haut, en cherchant un gestionna Datamodule et accès à partir d'une form [ par manudel ] Voilà, je voudrais avoir accès aux événements des objets figurant sur mon datamodule, mais je n'y arrive pas. J'ai l'erreur suivante : "le type de l'e visibilité procédures et fonctions dans une unit [ par manudel ] Je déclare une fonction qui renvoit un résultat de type TPersonne, et je voudrais savoircomment faire pour la mettre au même nivau de visibilité que l Code pas fiable dans un livre [:(!] [ par Youyou0214 ] Voil j'ai achet un livre sur delphi et je fais leurs exercises. Tout march pars un lanceur D'application. Il est compos d'une comboBox ( nom (c le n Index d'un table Dbase [ par webazard ] Bonjour, je crée un base Dbase indiqué dans l'aide de delphi en remplacant ttparadox par ttdbase.en supprimant la construction d'index min prog marche Hints dans une DLL [ par almi ] J'ai une fenêtre (TForm) qui fonctionne parfaitement dans mon executable.Si je la place dans une DLL, j'obtiens le message :Ne peut assigner TFont à T


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.