如何在字节数组中找到字符串的行号?
How do you find the line number of a string in a byte array?
我要查找的内容:
- 代码文件中的函数定义。
我掌握的信息:
- 代码文件。
- 代码文件中函数定义开始位置的字节索引和以字节为单位的长度。
我应该如何在文件中找到这个函数的行号?
我目前的想法:
- 将代码文件读取为字节数组
- 使用起始索引和结束长度在字节数组中查找函数。
- 将此函数从二进制转换为文本。
- 将整个代码文件从二进制文件转换为文本文件。
- 为文本中的行编号。
- 模式匹配以查找函数在文本中的位置和 return 行号。
我正在使用 Golang 作为后端服务,我相信它会执行此功能。尽管我在 JavaScript 中也有一个前端,但如果需要我可以利用它来提供帮助。
像计算换行符这样的方法是否足够好,或者您正在寻找更巧妙的方法?
您可以开始计算换行符 \n
,直到到达字节索引。
行号是换行符的个数。
假设文件p
的内容类型为[]byte
,函数的字节索引为inti
,那么bytes.Count(p[:i], []byte{'\n'}) + 1
returns 函数的行号。
我要查找的内容:
- 代码文件中的函数定义。
我掌握的信息:
- 代码文件。
- 代码文件中函数定义开始位置的字节索引和以字节为单位的长度。
我应该如何在文件中找到这个函数的行号?
我目前的想法:
- 将代码文件读取为字节数组
- 使用起始索引和结束长度在字节数组中查找函数。
- 将此函数从二进制转换为文本。
- 将整个代码文件从二进制文件转换为文本文件。
- 为文本中的行编号。
- 模式匹配以查找函数在文本中的位置和 return 行号。
我正在使用 Golang 作为后端服务,我相信它会执行此功能。尽管我在 JavaScript 中也有一个前端,但如果需要我可以利用它来提供帮助。
像计算换行符这样的方法是否足够好,或者您正在寻找更巧妙的方法?
您可以开始计算换行符 \n
,直到到达字节索引。
行号是换行符的个数。
假设文件p
的内容类型为[]byte
,函数的字节索引为inti
,那么bytes.Count(p[:i], []byte{'\n'}) + 1
returns 函数的行号。