forked from Ixiko/AHK-libs-and-classes-collection
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathWriteFileLine.ahk
39 lines (33 loc) · 1.21 KB
/
WriteFileLine.ahk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
Escribe texto en la línea espesificada de un archivo.
Parámetros:
Text: El texto a escribir.
FileName: La ruta al archivo.
Line: El número de la línea.
Encoding: La codificación a utilizar.
Return:
Si tuvo éxito devuelve 1, caso contrario devuelve 0.
ErrorLevel:
Si tuvo éxito se establece en el número de bytes escritos, caso contrario el valor establecido no tiene importancia.
Ejemplo:
ReturnValue := WriteFileLine(InputBox('Ingrese el texto a escribir'), FileSelect(), InputBox('Ingrese el número de línea'))
MsgBox(ReturnValue ? 'Bytes escritos: ' . ErrorLevel : 'Ha ocurrido un error!')
*/
WriteFileLine(Text, FileName, Line, Encoding := '')
{
Local NewText, File
, Lines := 0
Loop Parse, FileRead(FileName, Encoding), '`n', '`r'
{
NewText .= (A_Index == Line ? Text : A_LoopField) . '`n'
++Lines
}
If (ErrorLevel)
Return (FALSE)
Loop (Line - Lines)
NewText .= ((A_Index + Lines) == Line ? Text : '') . '`n'
if (!(File := FileOpen(FileName, 1 + 4, Encoding)))
Return (FALSE)
ErrorLevel := File.Write(SubStr(NewText, 1, -1))
Return (TRUE)
}