EFFACER UNE LIGNE DANS UN FICHIER TXT

Messages postés
12
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
24 mai 2006
- - Dernière réponse : BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
- 8 juin 2006 à 17:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37645-effacer-une-ligne-dans-un-fichier-txt

Afficher la suite 
BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13 -
Précision:
nroline est en fait un DWORD donc plage de 32 bits full, en VB aucune idée si est possible.
BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13 -
http://bnmvp.free.fr/RemLine.zip
Il y a la dll (3 Ko) et prog de test (tout en C...).
Le numéro de ligne est BASE 0 !!!
Le fichier est traité sur place sans utiliser de tmp, 256 Ko de mémoire (et rien d'autre) pendant le traitement.
Suppression de ligne sur txt de 1,6 Go en 1mn10, à voir selon PC.
Utilisation de la DLL depuis VB:
Declare Function bnRemLine Lib "bnLine.dll" (ByVal szFile As String, ByVal nroline As Long) As Long
Retourne
- 0 : NO ERROR
- -1: FICHIER NON DISPO OU SIZE > 2^63
- 1 : ERR MEMORY
- 2 : ERR SYSTEM (GetFileSize, ReadFile ou WriteFile)
Fichier doit être fermé, dll prend un accès exclusif dessus.
BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13 -
OneHacker, pour revenir au sujet, 5 mn c'est pour supprimer une ligne très loin du début je pense.
Je peaufine et fais encore qlqs tests sur une dll et je vous la file ensuite, elle vient de supprimer la ligne 19800 en qlqs centièmes de seconde. J'essaie illico sur beaucoup plus gros, on verra.
TroXsA
Messages postés
553
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
2 octobre 2016
-
Perso !
je vous rappel qu'il existe un forum pour ce genre de dicussion ! car plus sa va plus ça n'a rien a voir avec le code source donné :/
jsem2k1
Messages postés
125
Date d'inscription
samedi 11 décembre 2004
Statut
Membre
Dernière intervention
12 août 2008
1 -
tien essay sa j'ai tester er sa marche
Imports System.Runtime.InteropServices
<DllImport("user.DLL", EntryPoint:="SendMessageA", SetLastError:=True, _
CharSet:=CharSet.Unicode, ExactSpelling:=True, _
CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function SendMessageA( _
ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As String) As Long
' Leave the body of the function empty.
End Function
vas aussi voir se site (http://msdn2.microsoft.com/fr-fr/library/5k8a3s7s.aspx) pour migré l'appelle des api
le type any n'est plus pris en compte