mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
os.v: remove duplicate read_lines() functions, replace C code with V
This commit is contained in:
parent
ac66d49c51
commit
e9776ff7b2
68
os/os.v
68
os/os.v
@ -100,17 +100,34 @@ pub fn file_last_mod_time(path string) time.Time {
|
|||||||
return time.convert_ctime(q)
|
return time.convert_ctime(q)
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
// `read_lines` reads the file in `path` into an array of lines.
|
// read_lines reads the file in `path` into an array of lines.
|
||||||
|
// TODO return `?[]string` TODO implement `?[]` support
|
||||||
pub fn read_lines(path string) []string {
|
pub fn read_lines(path string) []string {
|
||||||
return read_file_lines(path)
|
mut res := []string
|
||||||
}
|
mut buf := [1000]byte
|
||||||
|
cpath := path.cstr()
|
||||||
fn read_file_into_lines(path string) []string {
|
fp := C.fopen(cpath, 'rb')
|
||||||
return read_file_lines(path)
|
if isnil(fp) {
|
||||||
|
// TODO
|
||||||
|
// return error('failed to open file "$path"')
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
for C.fgets(buf, 1000, fp) != 0 {
|
||||||
|
mut val := ''
|
||||||
|
buf[C.strlen(buf) - 1] = `\0` // eat the newline fgets() stores
|
||||||
|
$if windows {
|
||||||
|
if buf[strlen(buf)-2] == 13 {
|
||||||
|
buf[strlen(buf) - 2] = `\0`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
res << tos_clone(buf)
|
||||||
|
}
|
||||||
|
C.fclose(fp)
|
||||||
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
fn read_file_into_ulines(path string) []ustring {
|
fn read_file_into_ulines(path string) []ustring {
|
||||||
lines := read_file_into_lines(path)
|
lines := read_lines(path)
|
||||||
// mut ulines := new_array(0, lines.len, sizeof(ustring))
|
// mut ulines := new_array(0, lines.len, sizeof(ustring))
|
||||||
mut ulines := []ustring
|
mut ulines := []ustring
|
||||||
for myline in lines {
|
for myline in lines {
|
||||||
@ -124,43 +141,6 @@ const (
|
|||||||
BUF_SIZE = 5000
|
BUF_SIZE = 5000
|
||||||
)
|
)
|
||||||
|
|
||||||
fn read_file_lines(path string) []string {
|
|
||||||
// println('read file $path into lines')
|
|
||||||
mut res := []string
|
|
||||||
# char buf[os__BUF_SIZE];
|
|
||||||
# FILE *fp = fopen(path.str, "rb");
|
|
||||||
# if (!fp)
|
|
||||||
{
|
|
||||||
println('failed to open file "$path"')
|
|
||||||
return res
|
|
||||||
}
|
|
||||||
# while (fgets(buf, os__BUF_SIZE, fp) != NULL)
|
|
||||||
{
|
|
||||||
mut val := ''
|
|
||||||
# buf[strlen(buf) - 1] = '\0'; // eat the newline fgets() stores
|
|
||||||
#ifdef windows
|
|
||||||
# if (buf[strlen(buf)-2] == 13)
|
|
||||||
# buf[strlen(buf) - 2] = '\0'; // eat the newline fgets() stores
|
|
||||||
#endif
|
|
||||||
// # printf("%s\n", buf);
|
|
||||||
# val=tos_clone(buf) ;
|
|
||||||
// for i := 0; i < val.len; i++ {
|
|
||||||
// C.printf('%d) %c %d\n', i, val.str[i], val.str[i])
|
|
||||||
// }
|
|
||||||
#ifdef windows
|
|
||||||
// if val.str[val.len - 1] == 13 {
|
|
||||||
if val[val.len - 1] == 13 {
|
|
||||||
// TODO
|
|
||||||
// val.len--
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
// println('QQQ read line="$val"')
|
|
||||||
res << val
|
|
||||||
}
|
|
||||||
# fclose(fp);
|
|
||||||
return res
|
|
||||||
}
|
|
||||||
|
|
||||||
fn append_to_file(file, s string) {
|
fn append_to_file(file, s string) {
|
||||||
# FILE* fp = fopen(file.str, "a");
|
# FILE* fp = fopen(file.str, "a");
|
||||||
# fputs(s.str, fp);
|
# fputs(s.str, fp);
|
||||||
|
Loading…
Reference in New Issue
Block a user