Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2016, 07:32   #1
Алиби
Пользователь
 
Регистрация: 23.11.2016
Сообщений: 31
По умолчанию работа с строками(delphi)

Есть текстовый файл с содержим
ip mac
выглядит примерно так
192.168.2.1 90-2b-34-38-3d-3d
192.168.2.11 90-2b-34-38-3d-3s
как вывести по отдельности ip и mac
Код:
for i := 3 to str.count-1 do
    begin

    n:=pos(#32,str[i]);
   copy(str[i],1,n);
но делаю что то не так не могу догнать
Алиби вне форума Ответить с цитированием
Старый 15.12.2016, 08:40   #2
Алиби
Пользователь
 
Регистрация: 23.11.2016
Сообщений: 31
По умолчанию

нашел ошибку но теперь оказывается у меня в текстовом файле перед ip стоит 2 пробела как можно указывать от куда считывать или есть какая нибудь команда которая пропустит пробелы)
Алиби вне форума Ответить с цитированием
Старый 15.12.2016, 09:06   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
Before:='        192.168.2.1                    90-2b-34-38-3d-3d     ';
After:=Trim(Before);
while Pos('  ',After)>0 do StringReplace(After,'  ',' ',[rfReplaceAll]);
в After '192.168.2.1 90-2b-34-38-3d-3d'
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.12.2016, 09:09   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

если число первых пробелов известно, то почему не делать
Код:
for i := 3 to str.count-1 do
    begin
    ss:=copy(str[i],3,n);
    n:=pos(#32,ss);
   copy(s1,n);
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 15.12.2016, 09:55   #5
Алиби
Пользователь
 
Регистрация: 23.11.2016
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
если число первых пробелов известно, то почему не делать
Код:
for i := 3 to str.count-1 do
    begin
    ss:=copy(str[i],3,n);
    n:=pos(#32,ss);
   copy(s1,n);
если поставить 3 вместо 1 то он просто не считает пробелы то есть ip начинается типо 2.168.2.1 и тд
Алиби вне форума Ответить с цитированием
Старый 15.12.2016, 10:05   #6
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Я не писал готовый код, лишь совет. Понятно что в ss вместо n должно быть Length как минимум.
Пускай так, тогда пользуйтесь приемом Аватара по "обрезке" пробелов
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками Delphi gabach Помощь студентам 4 14.01.2015 20:27
работа со строками в delphi tec46 Помощь студентам 4 11.12.2011 00:34
работа со строками delphi fize Помощь студентам 22 07.01.2010 03:59
Работа со строками.(Delphi) SfSpawN Помощь студентам 1 09.06.2009 18:13