Page 1 sur 1

problème avec SortList()

Publié : sam. 12/mars/2005 21:53
par gansta93
Bonjour,

Je veux faire un ajouteur de fonctions dans APIFunctionListing.txt.
Je lis donc d'abord le contenu du fichier, que je mais dans une liste chaînée.
Je sauvegarde l'encien APIFunctionListing.txt.
J'ajoute à ma liste chaînée qui contenait les API, celles que je veux ajouter dans APIFunction.txt. ou l'inverse j'ajoute d'abord et j'écris ensuite le contenu.
Je la trie par ordre alphabétique, puis j'écris son contenu dans le fichier APIFunction.txt que je recrais.
Le problème est que mes trois fonctions ajoutées restent à leur place dans la list,et ne font pas parties des trillées.
Pourquoi ?
Voici le code.

Code : Tout sélectionner

NewList apis.s()
nbapi = 0
AddElement(apis())
apis() = "JFWSayString (lpszStrinToSpeak$, bInterrupt)"
AddElement(apis())
apis() = "JFWStopSpeech ()"
AddElement(apis())
apis() = "JFWRunScript (LPCTSTR lpszScriptName$)"
If ReadFile(0, "APIFunctionlisting.txt")
  ReadString()
  DefType.s str
  str = ReadString()
  While str
    AddElement(apis())
    apis() = str
    str = ReadString()
  Wend
  CloseFile(0)
  Repeat
    If RenameFile("APIFunctionListing.txt", "APIFunctionListing.txt.bak") = 0
      If MessageRequester("Erreur", "Impossible de renommer le fichier APIFunctionListing.txt." + #lfcr$ + "Cliquez sur 'réessayer' pour renouveler la tentative, ou sur annuler pour quitter.", #MB_RetryCancel | #MB_IconExclamation) = #IDcancel
        MessageRequester("Erreur", "La sauvegarde n'a pas pue être faite. Par mesure de prévansion, le fichier APIFunction.txt ne va pas être modifié.", #MB_OK | #MB_IconStop)
        End
      EndIf
    Else
      Break
    EndIf
  ForEver
  ResetList(apis())
  SortList(apis(), 2)
  nbapi = CountList(apis()) + 1
  If CreateFile(0, "APIFunctionListing.txt")
    WriteStringN(Str(nbapi))
    ResetList(apis())
    ForEach apis()
      WriteStringN(apis())
    Next
  Else
    Debug "Peut pas créer."
  EndIf
Else
  Debug "Impossible d'ouvrire"
EndIf
End
Merci d'avance.

Publié : dim. 13/mars/2005 0:17
par filperj
On dirai bien que Sortlist() ne marche pas :?

Code : Tout sélectionner


NewList stringlist.S()

For t=1 To 9
   AddElement(stringlist())
   stringlist()=Chr(Random(25)+'A')
Next

Debug "Avant tri:"
ForEach stringlist()
   Debug stringlist()
Next
Debug "______________"
SortList(stringlist(),0)
Debug "Après tri:"
ForEach stringlist()
   Debug stringlist()
Next

Publié : dim. 13/mars/2005 11:02
par gansta93
Cela voudrait-il dire que personne n'a jamais testé la foncion sur les forums pb ? :?