Einzelnen Beitrag anzeigen

DualCoreCpu
(Gast)

n/a Beiträge
 
#1

EInoutError: Datei nicht gefunden

  Alt 7. Jul 2015, 11:47
Hallo,

ich beschäftige mich gerade mit dem Mystix Texteditor, will den bissl erweitern.

Ich will Dateien laden und in diesen an fe3stgelegter Stelle '${xxxxxx} einen Text reinschreiben, an der Position, wo das Dollarzeichen mit den nachfolgenden geschweiften Klammern steht.

Mein Problem ist, das das für die erste Datei gelingt (dlgChoosePrj.Itemindex=0) aber für folgende nicht mehr. Wenn zum Beispiel dlgChoosePrj.Itemindex=1 ist oder weitere Optionen mit größerem Itemindex ausgewählt werden.

Was muss ich an folgendem Quelltext ändern, damit das Einlesen der *.template immer gelingt?

Delphi-Quellcode:
procedure TMainForm.FileNewExecute(Sender: TObject);
var
  PathOfTemplate: String;
  ModulName: String;
  LineNumber: Integer;
  NamePos: Integer;
begin
  dlgChoosePrj := TdlgChoosePrj.Create(self);
  dlgChoosePrj.ShowModal;

  PathOfTemplate := GetCurrentDir + DirSeparator + 'Templates'; //Pfad meiner Vorlagen
  ChDir(PathOfTemplate); //hier wird die Exception geworfen!!!! aber nur ab Itemindex von 1 und höher

  if dlgChoosePrj.ModalResult = mrOk then
  begin
    case dlgChoosePrj.ItemIndex of
      0: {if IsRegistered('app1.exe') or IsRegistered('app2.exe') then}
         begin
           DocumentFactory.CloseAll;
           DocumentFactory.New;

           DocumentFactory.Open('app12.template');
           DocumentFactory.Documents[DocumentFactory.Count-1].FileName := 'file12.cfg';

           LineNumber := 0;
           while LineNumber < DocumentFactory.Documents[DocumentFactory.Count-1].Editor.Lines.Count do
           begin
             //if System.POS('Text-im-File ${zu ersetzender Text}',DocumentFactory.Documents[DocumentFactory.Count-1].Editor.Lines[LineNumber]) > 0 then
             begin
               ModulName := ExtractFileName(DocumentFactory.Documents[DocumentFactory.Count-1].FileName);
               //ModulName := ChangeFileExt(ModulName,'');
               ModulName := DeleteFileExt(ModulName);
               ReplaceModulName(
                 '${zu ersetzender Text}',
                 ModulName,
                 LineNumber
                 );
             end;
             Inc(LineNumber);
           end;
           DocumentFactory.Documents[DocumentFactory.Count-1].Save;
         end;
      1: if IsRegistered('app3.exe') or IsRegistered('app4.exe') or IsRegistered('app41.exe') then
         begin
           DocumentFactory.CloseAll;
           DocumentFactory.New;

           DocumentFactory.Open('app34.template');
           DocumentFactory.Documents[DocumentFactory.Count-1].FileName := 'app34file.cfg';

           LineNumber := 0;
           while LineNumber < DocumentFactory.Documents[DocumentFactory.Count-1].Editor.Lines.Count do
           begin
             //if System.POS('Program ${zu ersetzender Text}',DocumentFactory.Documents[DocumentFactory.Count-1].Editor.Lines[LineNumber]) > 0 then
             begin
               ModulName := ExtractFileName(DocumentFactory.Documents[DocumentFactory.Count-1].FileName);
               //ModulName := ChangeFileExt(ModulName,'');
               ModulName := DeleteFileExt(ModulName);
               ReplaceModulName(
                 '${zu ersetzender Text}',
                 ModulName,
                 LineNumber
                 );
             end;
             Inc(LineNumber);
           end;
           DocumentFactory.Documents[DocumentFactory.Count-1].Save;
CurrentDir ist das Verzeichnis des Mystix Editors, meiner Anwendung also.

In diesem Unterverzeichnis existiert ein weiteres mit dem Namen Templates, wo alle Voralgen gespeichert und auch vorhanden sind .

Geändert von DualCoreCpu ( 7. Jul 2015 um 12:00 Uhr)
  Mit Zitat antworten Zitat