Показать сообщение отдельно
  #17  
Старый 28.07.2008, 14:43
JIexa21 JIexa21 вне форума
Прохожий
 
Регистрация: 23.07.2008
Адрес: Россия, Новочебоксарск
Сообщения: 15
Репутация: 10
По умолчанию

Я конечно не могу так изящно как The Shadow, но вот это у меня только что сработало без проблем:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
txtFile : TStrings;
i : integer;
str : string;
begin
  txtFile := TStringList.create; // создаем объект
  txtFile.LoadFromFile(ExtractFilePath(Application.ExeName)+'1.txt'); // читаем файл из папки с прогой
    for i := 0 to txtFile.Count - 1 do begin
      str := TrimLeft(txtFile.Strings [i]); // сразу убераем пробелы в начале
      str := copy(str,0,pos(' ',(str))-1)+ ';'; // копируем с начала до первого пробела и прибавляем в конце ';'
      txtFile.Strings[i] := str; // заменяем эту строку созданной
    end;
    txtFile.SaveToFile(ExtractFilePath(Application.ExeName)+'2.txt'); // сохраняем в файл
    txtFile.Free; // освобождаем память
end;

Считало из одного файла (пробелы добавил специально)
Код:
  Иван Петров
 Вася Гулькин
      Иван Денисов
Саша Пупкин
и во втором получилось вот это:
Код:
Иван;
Вася;
Иван;
Саша;
Если запускать процедуру повторно на одном и том же файле, то во втором случае получим одни точки с запятой в начале... Можно в начале добавить проверку на наличие тех же пробелов и точек с запятой (если нет пробелов и точка с запятой последний символ в строке, то стока уже была обработана). Тут уже сам смотри что тебе нужно.
Ответить с цитированием