Adding a string to an existing text file in Go

huangapple go评论90阅读模式
英文:

Adding a string to an existing text file in Go

问题

我有一个文本文件,我想使用Go语言向其中添加一段文本。文本文件的内容如下(不包括编号):

  1. blah
  2. blah2
  3. ]
  4. blah3
  5. blah4

我希望它的内容变成这样:

  1. blah
  2. blah2
  3. 我要插入的文本在这里
  4. ]
  5. blah3
  6. blah4

假设我已经打开了文件,并创建了一个名为"lines"的字符串数组,其中每个元素代表文件中的一行。

//找到包含"]"的行
for i, line := range lines {
if strings.ContainsRune(line, ']') {
//获取"]"之前的行...然后进行写入操作
lines[i-1] (?)
}
}

我该如何实现这个功能?

英文:

I have a text file that i'd like to add an a block of text to using Go. The text file looks like this (without the numbering)

  1. blah
  2. blah2
  3. ]
  4. blah3
  5. blah4

and i want it to look like this

  1. blah
  2. blah2
  3. MY INSERTED TEXT HERE
  4. ]
  5. blah3
  6. blah4

Assume I've already opened the file and created a string array of each line in the file called 'lines'.

 //find line with ] 
 for i, line := range lines {
	 if(strings.ContainsRune(line, ']')) {
		 //take the line before ']'... and write to it somehow 
		 lines[i-1] (?)
		 
	 }
 }

How do I do this?

答案1

得分: 0

以下是翻译好的内容:

lines = append(lines[:i], 
           append([]string{"我插入的文本在这里"}, lines[i:]...)...)

或者

lines = append(lines, "")
copy(lines[i+1:], lines[i:])
lines[i] = "我插入的文本在这里"

第二种方法更高效。这两种方法在有用的SliceTricks页面上列出。

英文:
lines = append(lines[:i], 
           append([]string{"MY INSERTED TEXT HERE"}, lines[i:]...)...)

or

lines = append(lines, "")
copy(lines[i+1:], lines[i:])
lines[i] = "MY INSERTED TEXT HERE"

The second approach is more efficient. The two approaches are listed on the useful SliceTricks page.

答案2

得分: 0

如果你想使用切片来实现这个操作,你可以在正确的索引位置插入你想要的字符串。

// 扩展切片的长度
lines = append(lines, "")
// 将每个元素向后移动
copy(lines[i+1:], lines[i:])
// 现在你可以在索引 i 处插入新的行
lines[i] = x

英文:

If you want to do this with a slice, you can insert the string you want at the correct index.

// make the slice longer
lines = append(lines, "")
// shift each element back
copy(lines[i+1:], lines[i:])
// now you can insert the new line at i
lines[i] = x

huangapple
  • 本文由 发表于 2014年10月2日 00:29:02
  • 转载请务必保留本文链接:https://go.coder-hub.com/26146081.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定