FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
Remplacer une chaîne par une autre Emptypar Pedro Aujourd'hui à 10:32

» item_index(résolu)
Remplacer une chaîne par une autre Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Remplacer une chaîne par une autre Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Remplacer une chaîne par une autre Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Remplacer une chaîne par une autre Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Remplacer une chaîne par une autre Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Remplacer une chaîne par une autre Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Remplacer une chaîne par une autre Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Remplacer une chaîne par une autre Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Remplacer une chaîne par une autre Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Remplacer une chaîne par une autre Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Remplacer une chaîne par une autre Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Remplacer une chaîne par une autre Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Remplacer une chaîne par une autre Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Remplacer une chaîne par une autre Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Cdiscount : -30€ dès 300€ ...
Voir le deal

 

 Remplacer une chaîne par une autre

Aller en bas 
3 participants
AuteurMessage
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Remplacer une chaîne par une autre Empty
MessageSujet: Remplacer une chaîne par une autre   Remplacer une chaîne par une autre EmptyDim 14 Aoû 2011 - 16:49

Suite à mes problèmes de changement de Windows (xp à seven, 32bits à 64bits), j'ai été amené à remplacer dans tous mes sources (240) certaines chaînes par d'autres.
Par exemple mon disque virtuel Z: dont je faisais un usage abondant par un répertoire plus réel (C:\Temp).
Impensable de le faire à la main, fichier par fichier.
D'où ce petit programme sans prétention, qui peut également servir en d'autres circonstances, dans toute série de fichiers textes.
Ca s'appelle Substitut.bas, mais il n'y a aucune connotation judiciaire Very Happy
Remplacer une chaîne par une autre Subst
L'appui sur le bouton Aperçu donne le nombre total de fichiers, le nombre de fichiers concernés (à modifier) et le nombre de modifications à effectuer.
Comme son nom l'indique, le bouton Exécuter exécute les remplacements, après un message de confirmation.
Code:
' Substitut.bas substitution d'une séquence à une autre dans tous les .bas
DIM seq$, seq1$, f$, fd$, fm$, a$, b$, c$, s$, r$, rp$, k%, af
DIM n, nl, nf, nc, nr, casse, u%, cc$, tp
LABEL Raz, zb, zc, Apercu, Exec, Instrs, Quit, Copie

fd$ = "C:\Temp\Listebas.txt"
fm$ = "C:\Fpro.tmp"

HEIGHT 0, 200: COLOR 0, 220,255,255: BORDER_HIDE 0
FONT_BOLD 0
ALPHA 20: TOP 20, 5: LEFT 20, 100
CAPTION 20, " - REMPLACEMENT DE SÉQUENCES DANS UNE SÉRIE DE FICHIERS -"
tp = 30
ALPHA 1: TOP 1, tp: CAPTION 1, "Chemin des fichiers:"
EDIT 2: TOP 2, tp: LEFT 2, 120: WIDTH 2, 300: COLOR 2,255,255,192
ALPHA 3: TOP 3, tp: LEFT 3, 420: CAPTION 3, "              Total:"
LIST 4: TOP 4, tp: LEFT 4, 520: WIDTH 4, 60: HEIGHT 4, 21: COLOR 4,255,255,192
TEXT 2, " ex: C:\Panoramic\*.bas"
ON_CLICK 2, Raz

ALPHA 5: TOP 5, tp+25: CAPTION 5, "            Remplacer:"
EDIT 6: TOP 6, tp+25: LEFT 6, 120: WIDTH 6, 300: COLOR 6,255,255,192
ALPHA 7: TOP 7, tp+25: LEFT 7, 420: CAPTION 7, "      Concernés:"
LIST 8: TOP 8, tp+25: LEFT 8, 520: WIDTH 8, 60: HEIGHT 8, 21: COLOR 8,255,255,192

ALPHA 9: TOP 9, tp+50: CAPTION 9, "                      Par:"
EDIT 10: TOP 10, tp+50: LEFT 10, 120: WIDTH 10, 300: COLOR 10,255,255,192
ALPHA 11: TOP 11, tp+50: LEFT 11, 424: CAPTION 11, "Remplacements:"
LIST 12: TOP 12, tp+50: LEFT 12, 520: WIDTH 12, 60: HEIGHT 12, 21: COLOR 12,255,255,192

cHECK 13: TOP 13, tp+75: LEFT 13, 120: WIDTH 13, 150: CAPTION 13, "Respecter la casse"

BUTTON 15: TOP 15, tp+80: LEFT 15, 500: WIDTH 15, 95: CAPTION 15, "Aperçu"
BUTTON 16: TOP 16, tp+110: LEFT 16, 500: WIDTH 16, 95: CAPTION 16, "Exécuter"
BUTTON 17: TOP 17, tp+140: LEFT 17, 500: WIDTH 17, 95: CAPTION 17, "Quitter"
ON_CLICK 15, Apercu: ON_CLICK 16, Exec: ON_CLICK 17, Quit

ALPHA 18: TOP 18, tp+140:LEFT 18, 120: WIDTH 18, 300
PROGRESS_BAR 19: TOP 19, tp+110: LEFT 19, 5: WIDTH 19, 490
MIN 19, 0

END

Raz:
TEXT 2, ""
RETURN

Apercu:
r$ = TEXT$(2): IF r$ = "" THEN RETURN
seq$ = TEXT$(6): IF seq$ = "" THEN RETURN
seq1$ = TEXT$(10): IF seq1$ = "" THEN RETURN
casse = CHECKED(13): ' = 1 si respecter la casse
FOR k% = LEN(r$) TO 1 STEP -1
    IF MID$(r$, k%, 1) = "\" THEN EXIT_FOR
NEXT k%
rp$ = LEFT$(r$, k%-1)
EXECUTE_WAIT "Cmd.exe /c DIR " + r$ + " /B >" + fd$
FILE_OPEN_READ 1, fd$: nf = 0
WHILE FILE_EOF(1) = 0
    nf = nf + 1: FILE_READLN 1, f$
END_WHILE
FILE_CLOSE 1
CLEAR 4: ITEM_ADD 4, STR$(nf)
MAX 19, nf
n = 0: nc = 0: nr = 0
cc$ = seq$: IF casse = 0 THEN cc$ = UPPER$(seq$)
FILE_OPEN_READ 1, fd$
WHILE FILE_EOF(1) = 0
    FILE_READLN 1, f$: n = n + 1: POSITION 19, n
    FILE_OPEN_READ 2, rp$ + "\" + f$: af = 0
    WHILE FILE_EOF(2) = 0
        FILE_READLN 2, a$
        u% = 1
zb:
        IF casse = 0
            c$ = UPPER$(a$): s$ = cc$
        ELSE
            c$ = a$: s$ = seq$
        END_IF
        GOSUB Instrs
        IF k% > 0
            IF af = 0 THEN nc = nc + 1: af = 1
            nr = nr + 1: u% = k% + LEN(seq$): GOTO zb
        END_IF
    END_WHILE
    FILE_CLOSE 2
END_WHILE
FILE_CLOSE 1
FILE_DELETE fd$
CLEAR 8: ITEM_ADD 8, STR$(nc)
CLEAR 12: ITEM_ADD 12, STR$(nr)
RETURN

Exec:
a$ = " Voulez-vous remplacer dans tous les fichiers de:" + CHR$(10)
a$ = a$ + "          " + r$ + CHR$(10)
a$ = a$ + " la séquence:" + CHR$(10)
a$ = a$ + "          " + seq$ + CHR$(10)
a$ = a$ + "  par:" + CHR$(10)
a$ = a$ + "          " + seq1$ + CHR$(10)
a$ = a$ + "?"
IF MESSAGE_CONFIRMATION_YES_NO(a$) <> 1 THEN RETURN
CAPTION 18, ""
r$ = TEXT$(2): IF r$ = "" THEN RETURN
seq$ = TEXT$(6): IF seq$ = "" THEN RETURN
seq1$ = TEXT$(10): IF seq1$ = "" THEN RETURN
casse = CHECKED(13): ' = 1 si respecter la casse
FOR k% = LEN(r$) TO 1 STEP -1
    IF MID$(r$, k%, 1) = "\" THEN EXIT_FOR
NEXT k%
rp$ = LEFT$(r$, k%-1)
EXECUTE_WAIT "Cmd.exe /c DIR " + r$ + " /B >" + fd$
n = 0: nc = 0: nr = 0
cc$ = seq$: IF casse = 0 THEN cc$ = UPPER$(seq$)
FILE_OPEN_READ 1, fd$
WHILE FILE_EOF(1) = 0
    FILE_READLN 1, f$: n = n + 1: POSITION 19, n
    FILE_OPEN_READ 2, rp$ + "\" + f$: af = 0
    FILE_OPEN_WRITE 3, fm$
    WHILE FILE_EOF(2) = 0
        FILE_READLN 2, a$
        u% = 1
zc:
        IF casse = 0
            c$ = UPPER$(a$): s$ = cc$
        ELSE
            c$ = a$: s$ = seq$
        END_IF
        GOSUB Instrs
        IF k% > 0
            IF af = 0 THEN nc = nc + 1: af = 1
            a$ = LEFT$(a$, k%-1) + seq1$ + MID$(a$, k%+LEN(seq$), 200)
            u% = k% + LEN(seq1$)
            nr = nr + 1: GOTO zc
        END_IF
        FILE_WRITELN 3, a$
    END_WHILE
    FILE_CLOSE 2: FILE_CLOSE 3
    IF af = 1
        GOSUB Copie
    END_IF
END_WHILE
FILE_CLOSE 1
FILE_DELETE fd$: FILE_DELETE fm$
CAPTION 18, STR$(nr)+" remplacements effectués dans " + STR$(nc) + " fichiers."
RETURN

Instrs:
' recherche dans c$ de la séquence s$ à partir de u%, résultat dans k%
b$ = MID$(c$, u%, 200): k% = INSTR(b$, s$)
IF k% > 0 THEN k% = k% + u% - 1
RETURN

Quit:
TERMINATE

Copie:
FILE_OPEN_READ 2, fm$: FILE_OPEN_WRITE 3, rp$ + "\" + f$
WHILE FILE_EOF(2) = 0
    FILE_READLN 2, a$: FILE_WRITELN 3, a$
END_WHILE
FILE_CLOSE 2: FILE_CLOSE 3
RETURN
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Remplacer une chaîne par une autre Empty
MessageSujet: Re: Remplacer une chaîne par une autre   Remplacer une chaîne par une autre EmptyDim 14 Aoû 2011 - 21:34

Merci, je n'en ai pas l'utilité pour le moment, mais ça peut en effet s'avérer très pratique Smile
Revenir en haut Aller en bas
Invité
Invité




Remplacer une chaîne par une autre Empty
MessageSujet: transfert de programme entre ordi.   Remplacer une chaîne par une autre EmptyJeu 18 Aoû 2011 - 10:48

J'ai longtemps hésité de mettre ce programme, déjà il faut que j'explique le "pourquoi du comment", et je pense que ce programme est dans le même état d'esprit que celui de JL35. Le rôle est différent.

Je suis en train de faire un programme qui me pose quelques problèmes (déjà au niveau du temps que je n'ai pas) et j'ai été obligé pour mieux le suivre de le découper en morceaux afin de faciliter et la compréhension et le contrôle. Qu'est-ce à dire? En découpant en morceau, j'ai mis dans un onglet les initialisations comme les dim et label. Dans un autre les objets, dans un autre des parties de code, qui tout en étant différent, travail ensemble, et la modification de l'un m'oblige à modifier le code d'une autre partie. Ainsi en passant d'un onglet à l'autre, les lignes et la position du curseur ne change pas, et celà facilite la mise au point du programme. Donc ceci est le pourquoi de ce qui suit.

Devant partir quelques jours, j'ai voulu emmener le programme avec moi et le mettre sur un EEEPC, mais là plus rien n'aurait fonctionner, vu que tout les chemins des includes et ceux des variables fichiers n’allaient plus. La solution normal était de modifier chaque ligne dans un sens, et au retour de faire l'inverse. Pour mon cas fastidieux.
J'ai donc fait un programme de transfert. Dans une liste (list 1) j'ai mis tous les chemins des includes.
Dans une autre liste, j'ai mis (list 5) toutes les lignes qui doivent être transformées avec un nouveau chemin qui correspondent à celui pour d'une carte SD.
A noter que pour cette carte j'ai deux lettres, une pour mon ordi qui est ici "E", et celui de l'EEEPC: "F", et il faut en tenir compte. On lit et on sauve avec la lettre de l'ordi principal, mais dans le fichier, c'est de la lettre du note-book qui entre en compte.

Ainsi, avec ce programme, je clique pour transférer sur la carte, avec laquelle je travail sur l'EEEPC, et ensuite au retour je clique pour rapatrier le programme. Et ça fonctionne parfaitement.
Seul bémol, je reçois un message d'exception lors que c'est fini, que je ne comprends pas, mais c'est sans importance, vu que travail est fait.

Code:

rem pour le transfert de programme d'un ordi à l' autre
label A_vers_B ,suite ,B_vers_A, suite_B
error_french
dim a$ ,a  ,b$  ,v ,f_book$ , e_book$ ,aa,f$ ,b,c ,c$

f_book$="F:\mdp_pano\"      :' disque de la carte reconnu dans le note_book ici F:\
e_book$="E:\mdp_pano\"      :' la carte ou clé usb avec dont l''ordi principal reconnait la lettre

height 0,700:width 0,520
list 1:width 1,230 :height 1,150
rem  on met ici les fichiers ordi dont les chemins devront être modifié

item_add 1,"C:\TESTE\copier_coller.bas"
item_add 1,"C:\rappel1\objet_copier_coller.bas"
item_add 1,"C:\rappel1\code_copier_coller.bas"
item_add 1,"C:\rappel1\deplace_page.bas"
item_add 1,"C:\rappel1\choix_note.bas"
item_add 1,"C:\rappel1\sauve_note.bas"
item_add 1,"C:\rappel\DEBUG\encode_decode_bug.bas"
item_add 1,"C:\INCLUDES\boite_DIR_DIALOG.bas"
item_add 1,"C:\INCLUDES\bouton.bas"
item_add 1,"C:\INCLUDES\boite_stop.bas"

list 2 :left 2,240:width 2,260 :height 2,150
for a=1 to count(1)
  a$=item_read$(1,a)
  item_add 2,"#include "+chr$(34)+a$+chr$(34)
next a

list 3 :top 3,170 :width 3,230 :height 3,150
for a=1 to count(1)
  a$=item_read$(1,a)
  repeat
      v=instr(a$,"\")
      if v>0 then a$=mid$(a$,v+1,len(a$))
  until v=0
  item_add 3,f_book$+a$
next a

list 4 :top 4,170:left 4,240:width 4,260:height 4,150

for a=1 to count(3)
  a$=item_read$(3,a)
  item_add 4,"#include "+chr$(34)+a$+chr$(34)
next a

' ===============
list 5 :top 5,330:width 5,230:height 5,100

rem  LIGNES A PRENDRE DANS LE PROGRAMME, dont on prévoit le chemin de remplacement dans list 6

item_add 5,"clipboard_string_copy "+chr$(34)+"C:\rappel\DEBUG\encode_decode_bug.bas"+chr$(34)
item_add 5,"execute "+chr$(34)+"c:\rappel\CHAIN_prg.exe"+chr$(34)
item_add 5,"dll_on "+chr$(34)+"C:\rappel\DEBUG\IPC.dll"+chr$(34)
item_add 5,"doss$="+chr$(34)+"C:\rappel\"+chr$(34)
item_add 5,"demare$="+chr$(34)+"lancement.ini"+chr$(34)
item_add 5,"dossier$="+chr$(34)+"C:\rappel\"+chr$(34)
item_add 5,"mes$="+chr$(34)+"démarrage"+chr$(34) +chr$(13)+chr$(10)+chr$(34)+"encode_décode"+chr$(34)+chr$(13)+chr$(10)+chr$(34)+"c:\rappel\livre.bni"+chr$(34)
item_add 5,"dir_change "+chr$(34)+"C:\"+chr$(34)

list 6 :top 6,440:width 6,230
rem  ici lignes corrigées pour la carte sd ou autre. Chaque ligne est en rapport avec list 5

item_add 6,"clipboard_string_copy "+chr$(34)+f_book$  +"encode_decode_bug.bas"+chr$(34)
item_add 6,"execute "+chr$(34)+f_book$+"CHAIN_prg.exe"+chr$(34)
item_add 6,"dll_on "+chr$(34)+f_book$+"divers\IPC.dll"+chr$(34)
item_add 6,"doss$="+chr$(34)+f_book$+chr$(34)
item_add 6,"demare$="+chr$(34)+f_book$+"lancement.ini"+chr$(34)
item_add 6,"dossier$="+chr$(34)+f_book$
item_add 6,"mes$="+chr$(34)+"démarrage"+chr$(34) +chr$(13)+chr$(10)+chr$(34)+"encode_décode"+chr$(34)+chr$(13)+chr$(10)+chr$(34)+"F:\mdp_pano\doc\livre.bni"+chr$(34)
item_add 6,"dir_change "+chr$(34)+"F:\"+chr$(34)

rem ======fin des infos à transformer
rem list des programmes
list 7 :top 7,440:left 7,240:width 7,260:height 7,150

for a=1 to count(1)
  a$=item_read$(1,a)
  repeat
      v=instr(a$,"\")
      if v>0 then a$=mid$(a$,v+1,len(a$))
  until v=0
  item_add 7,E_book$+a$
next a

dlist 12
form 10:command_target_is 10
button 11:left 11,10:top 11,20:caption 11,"transfert ordi vers note_boock" :width 11,200 :on_click 11,A_vers_B
button 13:left 13,10:top 13,50:caption 13,"transfert carte vers ordi":width 13,200:on_click 13,B_vers_A

list 15:hide 15
list 16:hide 16
list 17:hide 17

end
A_vers_B:
  full_space 10
  width 15,screen_x/2-10:height 15,screen_y-100 :top 15,160
  left 16,width(15)+10:width 16,width(15):height 16,height(15)
  left 17,50:width 17,150:height 17,150
  show 15:show 16:show 17
  for a=1 to count(1)
      a$=item_read$(1,a)
      file_load 12,a$
      a$=item_read$(7,a)
      file_save 12,a$
  next a
delete 11 : delete 13
full_space 10

for a=1 to count(7)
  a$=item_read$(7,a)
  repeat
      v=instr(a$,"\")
      if v>0 then a$=mid$(a$,v+1,len(a$))
  until v=0
  item_add 17,a$
next a

' on_click 17,suite
gosub suite
return
suite:
rem pour controler, en cliquant sut chaque item_index, on abouti ici, au lieu de faire la liste entière
' aa=item_index(17)
for aa=1 to 6:' count(7)
  f$=item_read$(7,aa)
  file_load 15,f$:file_load 16,f$

  for a=1 to count(15)
      a$=item_read$(15,a)
      for b=1 to count(2)
        b$=item_read$(2,b)
        if upper$(a$)=upper$(b$)
            c$=item_read$(4,b)
            item_delete 15,a
            item_insert 15,a,c$
            exit_for
        end_if
      next b
      ' --
      a$=item_read$(15,a)
      for b=1 to count(5)
        b$=item_read$(5,b)
        if upper$(a$)=upper$(b$)
            c$=item_read$(6,b)
            item_delete 15,a
            item_insert 15,a,c$
            exit_for
        end_if
      next b
  next a
 
  file_save 15,f$
next aa
return

rem à faire
B_vers_A:
  full_space 10
  width 15,screen_x/2-10:height 15,screen_y-100 :top 15,160
  left 16,width(15)+10:width 16,width(15):height 16,height(15)
  left 17,50:width 17,150:height 17,150
  show 15:show 16:show 17
  for a=1 to count(7)
      a$=item_read$(7,a)
      file_load 12,a$
      a$=item_read$(1,a)
      rem pour l'instant on évite de sauvegarder !!!
  '  file_save 12,a$
  next a
  ' bouton 11 et le bon pour ici à faire
delete 11 : delete 13
full_space 10
for a=1 to count(7)
  a$=item_read$(7,a)
  repeat
      v=instr(a$,"\")
      if v>0 then a$=mid$(a$,v+1,len(a$))
  until v=0
  item_add 17,a$
next a

' on_click 17,suite_B
gosub suite_B
return

suite_B:
rem pour controler, en cliquant sut chaque item_index, on abouti ici, au lieu de faire la liste entière
' aa=item_index(17)
for aa=1 to 6:' count(7)
  f$=item_read$(7,aa)
  file_load 15,f$:file_load 16,f$
  for a=1 to count(15)
      a$=item_read$(15,a)
      for b=1 to count(4)
        b$=item_read$(4,b)
        if upper$(a$)=upper$(b$)
            c$=item_read$(2,b)
            item_delete 15,a
            item_insert 15,a,c$
            exit_for
        end_if
      next b
      ' --
      a$=item_read$(15,a)
      for b=1 to count(6)
        b$=item_read$(6,b)
        if upper$(a$)=upper$(b$)
            c$=item_read$(5,b)
            item_delete 15,a
            item_insert 15,a,c$
            exit_for
        end_if
      next b
  next a
  f$=item_read$(1,aa)
  file_save 15,f$
next aa
return
Volontairement j'ai laissé les chemins tels quels, il fallait un exemple
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Remplacer une chaîne par une autre Empty
MessageSujet: Re: Remplacer une chaîne par une autre   Remplacer une chaîne par une autre EmptyJeu 18 Aoû 2011 - 11:29

Merci pour le source. Par contre, dans ton cas, ne serait-il pas plus simple de passer par un fichier ini qui serait lu en début de programme et qui donnerait les chemins à utiliser ?
Revenir en haut Aller en bas
Invité
Invité




Remplacer une chaîne par une autre Empty
MessageSujet: Re: Remplacer une chaîne par une autre   Remplacer une chaîne par une autre EmptyJeu 18 Aoû 2011 - 12:32

Dès le départ, il n'avait jamais été prévu le passage d'un ordi à l'autre. Mais le programme utilisant des includes, et aussi une partie ayant été aussi découpé, et cette partie devenu aussi des includes, un fichier ini serait inutile.
Ne pas oublié ceci:
Citation :
La directive #INCLUDE "F" est traitée par l'éditeur avant exécution du code. Par conséquent, F doit donc être écrit littéralement car aucune évaluation sur le nom n'est effectuée.
Voir l'aide sur cette instruction.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Remplacer une chaîne par une autre Empty
MessageSujet: Re: Remplacer une chaîne par une autre   Remplacer une chaîne par une autre EmptyJeu 18 Aoû 2011 - 14:56

Pour ce qui est de ta carte mémoire (si j'ai bien compris), tu te bases sur la lettre du lecteur, E ou F, différente suivant le pc.
Il me semble que windows attribue dynamiquement les lettres de lecteurs, et que la lettre peut très bien changer si tu montes autre chose, une clé usb ou autre.
Dans ce cas il me paraît plus sage de se baser sur le NOM (LABEL) de la carte, et non sur la lettre du lecteur, comme ça il suffit de vérifier que la carte est bien montée quelque part et de récupérer la lettre correspondante pour y accéder (voir le script vbs dans un topic à côté).

Pour donner (ou modifier) un nom à une carte ou clé usb, ou un volume en général, c'est facile: explorateur windows, clic droit sur l'élément, 'Renommer'.

En ce qui concerne le problème principal: chemins différents suivant que tu es sur le pc ou l'eepc, tu aurais aussi bien pu définir dans une ou des tables indexées par le type de pc tous les différents chemins utilisés, et au lancement définir sur quel type de pc tu fonctionnes en fonction du nom du disque dur C: (voir ci-dessus pour le nom).
Pour éviter d'avoir à modifier le programme si tu changes de machine.

Je ne suis peut-être pas très clair...
Revenir en haut Aller en bas
Invité
Invité




Remplacer une chaîne par une autre Empty
MessageSujet: Re: Remplacer une chaîne par une autre   Remplacer une chaîne par une autre EmptyJeu 18 Aoû 2011 - 19:30

Quelle idée que j'ai eu de mettre ce programme, et comme je l'ai dis j'ai longtemps hésité.
Le coup de la lettre, je connais. Seulement si je veux changer la lettre, il faut aussi changer celle qui a déjà la lettre. Sachant que je me retrouve toujours avec la lettre E sur mon PC et F si l'autre ordi, il m'a semblé plus simple de simplement de tenir compte des lettres attribué sans plus.
Ce programme je l'ai mis, car il m'a semblé que c'était dans le même esprit que le tien.
Il n'était pas prévu de faire un transfert au départ, et l'ide m'est venu vendredi soir avant de partir. Il se trouve que le programme que je conçois devrait être fini depuis un moment, mais il faut toujours que des idées se rajoutent, et après avoir modifié le programme, faire une adaptation, je suis tombé malade et pendant plus de 15 jours, j'ai pas pu programmer.

Si finalement j'ai mis ce programme de transfert, c'est qu'il me semble qu'il a un an ou deux, l'un d'entre vous, peut-être toi JL, cherchais un moyen de pouvoir avoir je ne sais plus très bien, de pouvoir partager, ou quelque chose comme ça les données entre deux ordis. Là pour le coup, j'aurai du resté dans mon coin, car il n'est pas question de transformé mon programme pour qu'il aille sur un ordi ou un autre. Le programme de transfert le fait très bien, mais c'est du provisoire. A noter que le programme que je fais est un programme personnel qui ne sera jamais publié.

Je vous ai fait perdre votre temps avec mon programme, donc mettez le aux oubliettes.
Salutation.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Remplacer une chaîne par une autre Empty
MessageSujet: Re: Remplacer une chaîne par une autre   Remplacer une chaîne par une autre EmptyJeu 18 Aoû 2011 - 21:07

Mais non cosmos, c'est toujours intéressant de voir ce que font les autres.
J'ai aussi des programmes persos non destinés à être publiés parce que répondant à un besoin trop particulier, simplement il m'arrive d'en mettre un morceau ici quand je pense que ça peut intéresser quelqu'un.

J'essaie de toujours mettre les chemins d'accès aux fichiers en tête du programme, et de les repérer, pour que ce soit facilement modifiable et adaptable par tous. Il me semble que c'est la difficulté principale pour passer d'une machine à une autre, sauf s'il y a appel à des ressources externes, là il faut qu'elles soient présentes sur les différents pc.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Remplacer une chaîne par une autre Empty
MessageSujet: Re: Remplacer une chaîne par une autre   Remplacer une chaîne par une autre EmptyVen 19 Aoû 2011 - 10:51

Salut vous deux et bonjour aux autres aussi, il n'y a pas de raison.
Petite réaction sur l'échange: Cosmos, on ne remet pas en cause l'utilité de ton source qui répond d'une part à ton besoin et qui d'autre part peut donner des idées à d'autres pour les leurs.
On essaye juste de proposer d'autres solutions pour "faciliter" le travail, partant du principe que quelque soit le cerveau, quelques soient les connaissances, il y a toujours plus d'idées dans 2 (ou plus) têtes que dans unes. Parfois, il peut être plus simple de changer l'approche d'un problème.
Revenir en haut Aller en bas
Invité
Invité




Remplacer une chaîne par une autre Empty
MessageSujet: Re: Remplacer une chaîne par une autre   Remplacer une chaîne par une autre EmptyVen 19 Aoû 2011 - 21:41

C'est incroyable, il y a internet ce soir. Coupure de la box toute la journée.
Pour moi, c'est une affaire classée, et je pense qu'il faut passer à autre chose.
Je rappel simplement qu'un include ne fonctionne pas avec un fichier ini, et je pense avoir déjà tout dit. Ne voulant pas faire du rabâchage, je vous envoi mes salutations.
Je tourne la page. A bientôt
Revenir en haut Aller en bas
jimx78

jimx78


Nombre de messages : 241
Age : 32
Localisation : Yvelines
Date d'inscription : 24/05/2010

Remplacer une chaîne par une autre Empty
MessageSujet: Re: Remplacer une chaîne par une autre   Remplacer une chaîne par une autre EmptyVen 19 Aoû 2011 - 23:39

Salut tout le monde

J'ai une question que je me pose:

Pourquoi avez vous besoin de modifier les répertoires de vos sources? Indiquer vous des répertoire complet dans vos source?(exemple: c:/image/ciel.JPG)

Puisque en faites vous pouvez simplement indiquer dans votre source juste le répertoire par rapport au source(si ciel.jpg ce trouve dans le même dossier que le source, indiquer simplement "ciel.jpg")

Autre: Et si il est dans le dossier image indiquer que "image/ciel.jpg"

Tout ce bla bla pour dire que vous compliquer beaucoup la vie en mettant la lettre du lecteur. En utilisent cette méthode on peut instaler n'importe quel logiciel ou on veut!
C'est le setup qui s'occupera du raccourci.

Vous savez vous faite comme vous voulez au final mais c'est plus dans les conventions. Ou peut être n'avez vous pas le choix?
(j'espère que vous comprener que c'est une critique constructive car je faiser comme vous avant)
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Remplacer une chaîne par une autre Empty
MessageSujet: Re: Remplacer une chaîne par une autre   Remplacer une chaîne par une autre EmptySam 20 Aoû 2011 - 0:26

Non non, je vois bien que c'est juste pour nous embêter !

C'est vrai, c'est pour moi une vieille habitude (manie ?) de mettre les chemins complets, mais j'aime bien savoir où sont les choses et les fichiers, et comme ça on le voit du premier coup d'oeil. ET si on déplace quelque chose, on le voit tout de suite.
Mais c'est bien évident que chacun fait comme il le sent le mieux !
Revenir en haut Aller en bas
Contenu sponsorisé





Remplacer une chaîne par une autre Empty
MessageSujet: Re: Remplacer une chaîne par une autre   Remplacer une chaîne par une autre Empty

Revenir en haut Aller en bas
 
Remplacer une chaîne par une autre
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Remplacer une sous-chaîne de caractères par une autre
» Remplacer un article dans un fichier texte
» Remplacer tous les espaces par _ dans les noms des fichiers
» Remplacer espace par tiret dans noms des dossiers / fichiers
» Fenêtres rechercher et remplacer

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: