Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.08.2013, 19:41
Sergio1985 Sergio1985 вне форума
Прохожий
 
Регистрация: 02.06.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
Смущение *.dat файл

Добрый день форумчане!
Прошу помочь мне с кодом.
Имеется входной файл *.dat
В нём храняться следующие данные

478962.45 4598214.87 -26.0 1
478941.13 4578421.00 -30.0 0
479654.10 4587563.46 -26.0 0
479654.10 4587563.46 -26.0 1

Я загружаю в программу, нужно чтобы в строке, где в четвёртом столбике стоит единица, строка (в выходном) переписывалась в следующий вид:

_3dpoly(пробел)478962.45(запятая)4598214.87(запята я)-26.0

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

Содержание выходного файла
________________________________
_3dpoly 478962.45,4598214.87,-26.0
478941.13,4578421.00,-30.0
479654.10,4587563.46,-26.0
_3dpoly 479654.10,4587563.46,-26.0
________________________________
Спасибо всем за ответы.

Файл прикреплю ниже
Вложения
Тип файла: rar rev.rar (426 байт, 0 просмотров)
Ответить с цитированием
  #2  
Старый 06.08.2013, 21:08
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Вообще задача для регулярок, но поскольку вы в Дельфи вопрос задали то и получайте решение на Дельфи:
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils, Classes;

Var
  SrcFile,DstFile: TStringList;
  i: Integer;
  S: String;
begin
 SrcFile := TStringList.Create;
 SrcFile.LoadFromFile('C:\1\1.txt');
 DstFile := TStringList.Create;
 for i := 0 to SrcFile.Count - 1
 do begin
    S := SrcFile.Strings[i];
    if Copy(S, Length(S), 1) = '1'
    then S := '_3dpoly ' + Copy(S, 1, Length(S) - 2);
    S := StringReplace(S, ' ', ',', [rfReplaceAll]);
    DstFile.Add(S);
    end;
 DstFile.SaveToFile('C:\1\1_1.txt');
 DstFile.Free;
 SrcFile.Free;
end.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:44.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter