Как заменить текст, который уже существует в текстовом файле, и как я могу вставить текст между строками существующего текста - PullRequest
0 голосов
/ 10 сентября 2010

Привет всем, у меня есть текстовый файл, сохраненный с некоторыми данными следующим образом

101011111111101111111111009100954A094101                                                      
9000000000001000000000000000000000000000001000000000000000000000000000000000000000000000000000

Теперь я хотел бы вставить данные между этими двумя строками как

52201               1                   1         CCD1         100910100910   1111111110000001
6211111111181                00000000011              1                     1 0111111110000001
822000000101111111180000000000000000000000011                                  111111110000001

и конечный результат должен быть следующим:

101011111111101111111111009100954A094101                                                      
52201               1                   1         CCD1         100910100910   1111111110000001
6211111111181                00000000011              1                     1 0111111110000001
822000000101111111180000000000000000000000011                                  111111110000001
9000000000001000000000000000000000000000001000000000000000000000000000000000000000000000000000

а также я хотел бы заменить некоторые значения в последней строке, основываясь на строках, вставленных между первой и строками. Так может ли кто-нибудь дать мне идею

Ответы [ 3 ]

1 голос
/ 10 сентября 2010

Вы должны прочитать файл в структуру данных (например, список строк).

Затем обработать данные так же, как в памяти, создав новый список строк.

Затем запишите их в файл.

Для больших файлов используйте вместо этого потоки.

0 голосов
/ 10 сентября 2010

Вы не указали, что уже сделали, и с какой частью вашего проекта вам нужна помощь.

Предполагая, что у вас есть строка с данными и вы хотите вставить что-то между строк, этот код сделает это:

// Two lines of data
string data = 
    "101011111111101111111111009100954A094101\n" + 
    "9000000000001000000000000000000000000000001000000000000000000000000000000000000000000000000000";

// New data
string newdata =
    "52201 1 1 CCD1 100910100910 1111111110000001 6211111111181 00000000011 1 1 0111111110000001 822000000101111111180000000000000000000000011 111111110000001";

// Insert the new data after the first line change
data = data.Insert(data.IndexOf("\n") + 1, newdata + "\n");

Console.WriteLine(data);
0 голосов
/ 10 сентября 2010

Некоторые операционные системы имеют специальные форматы файлов, где вы можете обрабатывать строки в файле почти как базу данных: добавлять, обновлять и удалять строки по своему усмотрению.Я не верю, что вы можете сделать это в Windows.

Так что вам нужно будет прочитать исходный файл и записать измененный файл во временный файл, затем удалить (или сохранить) исходный файл и переименовать новый файл.,

Если весь файл небольшой, прочитайте его в память, определите каждую строку и сохраните их в структуре данных, такой как список.

Если файл больше, чем умещается в памяти, тогда вынужно прочитать его и переписать его кусками, пока вы не найдете место, где вы меняетесь, и внесите изменения перед тем, как переписать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...