VS Code (Windows, macOS, Linux) - Свободный и С открытым исходным кодом с хорошим GUI. Отредактированный файл JSON на 3,6 ГБ, загруженный за минуту. У Вас должно быть достаточно RAM для загрузки файлов.
Свободные средства просмотра только для чтения:
tail
". Файл поддержек после, поиск, фильтрация, настраиваемое выделение, плагины и внешние инструменты. Свободные редакторы:
Встроенные программы (никакая требуемая установка):
MORE
, не Unix more
. Консольная программа, которая позволяет Вам просматривать файл, один экран за один раз. веб-средства просмотра:
Заплаченные редакторы:
И наконец, Вы попытались открыть большой файл со своим постоянным редактором? Некоторые редакторы могут на самом деле обработать довольно большие файлы. В частности, Блокнот ++ (Windows) и Сублимированный текст (Windows, macOS, Linux) файлы поддержки в диапазоне на 2 ГБ.
Вы можете разделить строку на компоненты, проанализировать последнюю, чтобы увеличить ее, и снова собрать их вместе:
string[] parts = version.Split('.');
parts[3] = (Int32.Parse(parts[3]) + 1).ToString();
version = String.Join(".", parts);
Другой способ, который может быть немного более эффективным - получить только последний компонент, использующий строковые операции:
int pos = version.LastIndexOf('.') + 1;
int num = Int32.Parse(version.Substring(pos));
version = version.Substring(0, pos) + num.ToString();
public string DoMagic(string s)
{
string t = s.Substring(s.LastIndexOf(' ')+1);
return t.Substring(0, t.Length-1) + (int.Parse(t[t.Length-1].ToString())+1).ToString();
}
Предполагая что изменяется только последний элемент в подстроках:
List<string> items = GetItems();
string[] max = input.Split(' ').Max().Split('.');
string next = string.Format("{0}.{1}.{2}.{3}", max[0], max[1], max[2], int.Parse(max[3]) + 1);
Предполагая, что формат не будет изменить, это может быть вашим лучшим решением. Это будет работать даже с неупорядоченными строками списка версий.
string VersionList = "1.0.0.0 1.0.0.1 1.0.0.2";
List<Version> Versions = new List<Version>();
foreach (string FlatVersion in VersionList.Split(' '))
Versions.Add(new Version(FlatVersion));
Versions.Sort(); Versions.Reverse();
Version MaximumVersion = Versions[0];
Version NewVersion = new Version(
MaximumVersion.Major,
MaximumVersion.MajorRevision,
MaximumVersion.Minor,
MaximumVersion.MinorRevision + 1);
Предполагая, что ваш список строк:
List<string> stringList;
Вы можете получить последнюю запись в этом списке, используя:
string lastString = stringList[stringList.Length - 1];
Затем получить последний символ этой строки, используя:
char c = lastString[lastString.Length - 1];
Преобразовать и увеличить char в десятичное:
int newNum = Int32.Parse(c.ToString()) + 1;
Наконец, скопируйте исходную строку и замените последнее число новым:
string finalString = lastString;
finalString[finalString.Length - 1] = c;
Теперь добавьте это обратно в исходный список:
stringList.Add(finalString);
Я сейчас использую VB, но перевод на C # должен быть простым. Отсюда реализация вашей реальной проблемы должна быть простой - у вас есть коллекция, последний элемент - это последний номер, просто увеличьте его, замените последний элемент коллекции и снова запишите.
Imports System.Text.RegularExpressions
Module Module1
Sub Main()
Dim matchC As MatchCollection = Regex.Matches("111.222.333", "\d+")
Dim i As Integer = 1
For Each x In matchC
Console.Write(i.ToString & " ")
Console.WriteLine(x)
i = i + 1
Next
' remember to check the case where no matches occur in your real code.
Console.WriteLine("last number is " & matchC.Item(matchC.Count - 1).ToString)
Console.ReadLine()
End Sub
End Module