Métodos para contar las líneas de un archivo.
Publicado: 10 Ago 2011, 15:56
pues a ver, descubrí el error del post anterior, y bueno, la cosa es que tenia puesto FileRead, entonces cuando me encontraba el valor, como no lee líneas, el _StringBetween() no me sirve porque he de especificar la linea... Es decir, me sirve pero necesito saber en que linea están esos valores.
Pues mirad el codigo, así tal cual, obviamente no me busca bien porque al usar FileReadLine necesito especificar la línea de donde se va a buscar, cosa que, como es una busqueda, no sabes donde va a estár el valor. Y no se me ocurre nada para determinar la linea con un array que vaya autoincrementandose o algo parecido... Y si uso FileRead a secas, solo me dice que si, que el valor que estoy buscando se encuentra en TAL ARCHIVO. no en TAL LINEA. y entonces despues el valor de $id me lo da como el principio del nombre del archivo, ya que no especifica línea el FileRead... Dios mio, me va a explotar la cabeza xD
Código: Seleccionar todo
$array = _FileListToArray($Directorio,"*",1)
$i = 1
While $i <= $array[0]
$File = FileOpen($Directorio & $array[$i])
$line = FileReadLine($File,LINEA)
$Result = StringInStr($line, $ValID)
If $File = -1 Then
MsgBox(04096, "Error", "Imposible abrir el archivo.")
Elseif ($Result >= 2 ) Then
$idsearch = _StringBetween($line, '<item id="', '"')
$id = $idsearch[0]
$c = $b + 1
While $b < $c
_FileWriteToLine($PathDir,$b,'<item id="1">',0)
$b = $b + 1
_FileWriteToLine($PathDir,$b,'<production id="' & $id & '" count="' & $Count1 & '"/>',0)
$b = $b + 1
_FileWriteToLine($PathDir,$b,'<ingredient id="' & $ItemIC & '" count="' & $Count2 & '"/>',0)
$b = $b + 1
_FileWriteToLine($PathDir,$b,'</item>',0)
$c = $b
WEnd
$b = $b + 2
ExitLoop
ElseIf ($i = $array[0]) Then
MsgBox(0496,"Resultado","No se han encontrado resultados con esa ID o Nombre de Producto.")
ExitLoop
Else
$i = $i + 1
EndIf
WEnd