begin process at 2012 02 11 11:45:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Algorithme

 > 

Autre

 > 

Lecture ligne par ligne


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lecture ligne par ligne

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ée 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...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,654 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales