Editeur de fichier préseclectionné

Editeur de fichier préseclectionné - Python - Programmation

Marsh Posté le 22-04-2005 à 14:01:06    

bonjour à tous.
Je suis actuellement en train de créer une interface graphique en python (v2.4) sous windows 2000 avec Tkinter.
Je souhaiterai rajouter à mon programme un éditeur de fichier, style TextPad, mais je ne sais pas comment faire pour enlever les / du chemin de mon fichier, et les \t du (flag + nom de fichier).
Est-ce que quelqu'un pourrait m'aider???
Pour vous donner un aperçu, voici un bout de mon code:
                 
    def cmdsEditFile(self):
        self.editor.insert(INSERT, '$ Edit... \n')
        selectedFileList = self.listbox.curselection()
        editTool = svtutil.svtGetPrefs('editorBinDir')
        filelist = ''
        if sys.platform == 'win32' or sys.platform == 'cygwin':
            file = ''
            for index in selectedFileList:
                selectedFile = self.listbox.get(index)
                print selectedFile
                for file in selectedFile:
                     if re.search('cygdrive', file):
                        select = re.search('\t', selectedFile)
                        selected=select.split('\t')
                        data = file.split('/')
                        data[2] = re.sub(data[2], data[2]+':', data[2])
                        file = '/'.join(data[2:len(data)])
                        file = '\t'.join(selected[selected:-1])
                     filelist = filelist + ' ' + file
 
        cmdln = editTool + ' ' + filelist + ' &'
             
        svtdb.outputDebugMsg(cmdln)
        os.system(cmdln)
 
    def popupChoices(self, event=None):
        """Popup right-click menu of special parameter operations"""
        selectedFileList = self.listbox.curselection()
        if selectedFileList != ():
            #self.browserEnabled = DISABLED
            self.frame = Frame(self.window, relief=RIDGE)
            self.entry = Entry(self.frame, width = '21')
            self.menu = Menu(self.entry, tearoff = 0)
            self.menu.add_command(label   = "Keep Rep Version",
                                  #state   = self.browserEnabled,
                                  command = self.cmdsGetRepVersion)
            self.menu.add_command(label   = "Keep WE Version",
                                  #state   = self.browserEnabled,
                                  command = self.cmdsKeepWorkingVersion)
            self.menu.add_command(label   = "Keep Merge",
                                  #state   = self.browserEnabled,
                                  command = self.cmdsKeepMergedVersion)
            self.menu.add_separator()
            self.menu.add_command(label   = "Merge Files",
                                  #state   = self.browserEnabled,
                                  command = self.cmdsMergefiles)
            self.menu.add_separator()
            self.menu.add_command(label   = "Proceed on Flaged Files",
                                  #state   = self.browserEnabled,
                                  command = self.cmdsProceed)
            self.menu.add_separator()
            self.menu.add_command(label   = "Add Element",
                                  #state   = self.browserEnabled,
                                  command = self.cmdsAddElement)
            self.menu.add_command(label   = "Remove Element",
                                  #state   = self.browserEnabled,
                                  command = self.cmdsRemoveElement)
            self.menu.add_separator()
            self.menu.add_command(label   = "Edit File",
                                  #state   = self.browserEnabled,
                                  command = self.cmdsEditFile)
            self.menu.add_separator()
            self.menu.add_command(label   = "Select All",
                                  #state   = self.browserEnabled,
                                  command = self.cmdsSelectAll)
 
            # Get the current y-coordinate of the Entry
            ycoord = self.entry.winfo_pointery()
 
            # Get the current x-coordinate of the cursor
            xcoord = self.entry.winfo_pointerx()
 
            # Display the Menu as a popup as it is not associated with a Button
            self.menu.tk_popup(xcoord, ycoord)
 
En fait, pour être plus clair, je sélectionne le fichier avec le clic gauche de la souris, puis je fait un clique droit pour éditer mon fichier.
Esct-ce quelqu'un pourrait m'aider à me dépatouyer de ce problème, et des varaibles (il y en a un peu trop juste pour éditer un fichier). Pour le moment, j'arrive à enlever les / du chemin de mon fichier mais enlever les \t (tabulations) me pose toujours problème, alors que c'est la même procédure!!!???
Je vous remercie de votre aide
Cordialement
Frankystadore

Reply

Marsh Posté le 22-04-2005 à 14:01:06   

Reply

Marsh Posté le 22-04-2005 à 15:21:18    

j'ai trouvé!!
voici le bon code de EditFile:
 
    def cmdsEditFile(self):
        self.editor.insert(INSERT, '$ Edit... \n')
        selectedFileList = self.listbox.curselection()
        editTool = svtutil.svtGetPrefs('editorBinDir')
        filelist = ''
        if sys.platform == 'win32' or sys.platform == 'cygwin':
            file = ''
            for index in selectedFileList:
                selectedFile = self.listbox.get(index)
                filename = string.split(selectedFile)
                print filename[-1]            
 
        cmdln = editTool + ' ' + filename[-1] + ' &'
             
        svtdb.outputDebugMsg(cmdln)
        os.system(cmdln)
 
De cette manière, on récupère correctement et sans aucun problème le nom du fichier à éditer, et on l'édite!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed