Написание всех строк, кроме последнего [дубликат]

Это решение делает только один выбор из YourTable, поэтому он быстрее. Он работает только для MySQL и SQLite (для SQLite удаляет DESC) в соответствии с тестом на sqlfiddle.com. Возможно, он может быть настроен для работы на других языках, с которыми я не знаком.

SELECT *
FROM ( SELECT *
       FROM ( SELECT 1 as id, 1 as rev, 'content1' as content
              UNION
              SELECT 2, 1, 'content2'
              UNION
              SELECT 1, 2, 'content3'
              UNION
              SELECT 1, 3, 'content4'
            ) as YourTable
       ORDER BY id, rev DESC
   ) as YourTable
GROUP BY id
6
задан Brian Tompsett - 汤莱恩 11 July 2015 в 20:16
поделиться

2 ответа

Как насчет чего-то типа:

var lines = System.IO.File.ReadAllLines("...");
System.IO.File.WriteAllLines("...", lines.Take(lines.Length - 1).ToArray());

Объяснение:

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

. Что этот код делает, это прочитать все строки в массиве и записать эти строки обратно в файл, исключая только последние линия. (Метод Take () (часть LINQ) принимает количество строк, указанное в нашем случае, length - 1). Здесь var lines можно прочитать как String[] lines.

19
ответ дан decyclone 3 September 2018 в 14:37
поделиться

Вы не можете удалить конец строки, так как File.WriteAllLines автоматически добавляет его, однако вы можете использовать этот метод:

public static void WriteAllLinesBetter(string path, params string[] lines)
{
    if (path == null)
        throw new ArgumentNullException("path");
    if (lines == null)
        throw new ArgumentNullException("lines");

    using (var stream = File.OpenWrite(path))
    using (StreamWriter writer = new StreamWriter(stream))
    {
        if (lines.Length > 0)
        {
            for (int i = 0; i < lines.Length - 1; i++)
            {
                writer.WriteLine(lines[i]);
            }
            writer.Write(lines[lines.Length - 1]);
        }
    }
}

Это не мое, я нашел его в .NET File.WriteAllLines оставляет пустую строку в конце файла

2
ответ дан Community 3 September 2018 в 14:37
поделиться