Editeur de fichier préseclectionné - Python - Programmation
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!!
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