Форум программистов, компьютерный форум, киберфорум
Objective-C
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
1

Собака в логине

19.05.2013, 19:27. Показов 3119. Ответов 28
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Возможно, дурной вопрос, но я что-то туплю второй день.
Есть у меня логин к FTP-серверу вида username@host. На всякий случай уточняю. Это именно логин такой.
Задача - залить на этот ftp файлик. Соединение открываю через CFWriteStreamCreateWithFTPURL. Ей требуется connection string. Так вот вопрос: Как ее формировать?
Строка вида CFSTR("ftp://user@mysite.ru:pass@ftp.mysite.ru"); приводит к kCFErrorDomainCFNetwork error 200. CFSTR("ftp://user%64mysite.ru:pass@ftp.mysite.ru"); - тоже.
FileZilla логинится без капризов. Причем, я на 100% уверен, что с остальным у меня все нормально: если заменить логин на пользователя без собаки, все работает.
Никто с подобной бедой не сталкивался?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2013, 19:27
Ответы с готовыми решениями:

Что значат собака (@) и процент (%) в тексте кода
Добрый день всем! Извините, если задаю вопрос немного неправильно или это уже было. Учусь в...

Достанет собака прохожего или нет? Даны координаты точки, где находится собака, дана длина веревки, ограничивающей своб
Помогите

Обновление БД при логине
Нужно что бы когда юзер логинился, в БД обновлялся столбец userrank, юзер получает рандомное число...

Использование прокси при логине
Доброго новогоднего дня. У меня вопрос, есть у меня логин в ВК, работает норм, но если добавляю...

28
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
19.05.2013, 20:01 2
@ = %40, а не %64, %64 - это "d".

Попробуйте свою изначальную строку заURLэнкодить
Чтобы не вручную, как говорится

Добавлено через 6 минут
И так как NSString и CFStringRef кастуемы друг в друга, не заморачивайтесь, работайте с NSString, а потом просто кастуйте в (CFStringRef).
1
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
19.05.2013, 21:30  [ТС] 3
Ой блин! Точно 40. Эк меня приглючило-то
Спасибо!
0
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
20.05.2013, 09:30 4
Пожалуйста. С утра прочитал название темы... "Собака в логине"
- вспомнилось изречение старшего товарища -
Ааа... Воот где собака-то порылась
Здесь она получается, порылась в логине
0
14 / 22 / 4
Регистрация: 20.01.2013
Сообщений: 125
20.05.2013, 11:10 5
Objective-C
1
2
#define urlencode(str) CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)str, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8)
#define urlencodeansi(str) CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)str, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingWindowsCyrillic)
Objective-C
1
2
NSLog(@"%@",urlencode(@"ftp://user@mysite.ru:pass@ftp.mysite.ru"));
// ftp%3A%2F%2Fuser%40mysite.ru%3Apass%40ftp.mysite.ru
0
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
20.05.2013, 11:56 6
Да перестаньте вы везде эти дефайны впихивать, есть же понятие метода, что за подход?
0
14 / 22 / 4
Регистрация: 20.01.2013
Сообщений: 125
20.05.2013, 12:28 7
Да перестаньте вы везде эти дефайны впихивать, есть же понятие метода, что за подход?
откуда такая ненависть к макросам?

есть же понятие метода
все в статический класс спихивать? "синглтон с улитилитами" TM ?

а может ваще в хелпер класс?

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// расширенная строка
 
@interface NSString (StringExt)
 
-(NSString*) ext_urlecode;
-(NSString*) ext_urlecodeansi;
 
@end
 
@implementation NSString (StringExt)
 
-(NSString*) ext_urlecode {
   return CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)self, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8)
}
-(NSString*) ext_urlecodeansi {
   return CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)self, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingWindowsCyrillic)
}
 
@end
0
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
20.05.2013, 13:22  [ТС] 8
Цитата Сообщение от alexpac26 Посмотреть сообщение
откуда такая ненависть к макросам?
Из опыта поддержки. Они же нечитабельны.
Но за попытку спасибо. Хотя, zulkis уже скинул ссылку на правильное решение. "Все уже написано до нас"

Добавлено через 5 минут
Цитата Сообщение от alexpac26 Посмотреть сообщение
все в статический класс спихивать? "синглтон с улитилитами" TM ?
а может ваще в хелпер класс?
В категории соответствующих классов. Если очередной метод делает что-то полезное со строками, пишем категорию для NSString, если как-то по-хитрому массив сортирует - в категорию NSArray его. И так далее. И найти проще и читать привычно. Причем, не только автору
0
14 / 22 / 4
Регистрация: 20.01.2013
Сообщений: 125
20.05.2013, 13:56 9
как бы надо различать функции и методы как таковые

urlencode это функция, а не метод объекта

функция берет в качестве параметра аргумент и возвращает значение

если писать как метод то название у него сменится

NSString encodeAsUrlecode: и тп

и ваще

CFURLCreateStringByAddingPercentEscapes()
с СИ синтасисом писать не стремно, а вот если urlencode() который, аж в нескольких языках программирования является стандартной функцией уже сразу все: непонятно неочевидно и прочее
0
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
20.05.2013, 14:29 10
ну как вы не поймете, что таким никто не пользуется, это неправильно с точки зрения ООП, тяжело в поддержке, интуитивно непонятно

какой хелпер, при чем тут синглтон с утилитами (хотя вы наверняка имели ввиду статический класс, у вас же нету данных, только методы)
выделите метод для этого и используйте его, если такая конструкция понадобится еще где-то, вынесите в категорию или отдельный объект
Я вот вам советовал почитать по рефакторингу литературу, даже М.Фаулер "Рефакторинг - Улучшение существующего кода"
такой подход называется "Выделение метода", вы выносите не совсем читабельный фрагмент кода в метод, название которого объясняет его назначение.

даже если юзать статическую переменную вместо дефайна, компилятор будет использовать только одну копию переменной и всем раздавать на нее указатель, а в случае с дефайн, он везде будет вставлять отдельную копию значения, что отразится на сорсах и нагрузке компилятора (не супер критично, но почему не писать по-человечески, читабельно и интуитивно ясно для других разработчиков, чем везде писать по-своему)

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

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

Цитата Сообщение от alexpac26 Посмотреть сообщение
CFURLCreateStringByAddingPercentEscapes()
с СИ синтасисом писать не стремно, а вот если urlencode() который, аж в нескольких языках программирования является стандартной функцией уже сразу все: непонятно неочевидно и прочее
не стремно, потому что все ожидают увидеть именно эту функцию для решения данной задачи, а если стремно, то вынесите в отдельный метод, как я уже говорил выше
0
14 / 22 / 4
Регистрация: 20.01.2013
Сообщений: 125
20.05.2013, 14:42 11
проще говоря, стандарты "разработки в команде 5 человек с проектом на 2000 классов" сильно отличаются
от разработки практически индивидуального плана и требуют громоздкости, но соотвествия кода стандартам, чем его чистоты и лаконичности.

а в случае с дефайн, он везде будет вставлять отдельную копию значения, что отразится на сорсах и нагрузке компилятора
разница только в 0.01 % времени компиляции

Добавлено через 8 минут
а если стремно, то вынесите в отдельный метод
опятже если, вынести в метод, то темже ALT надо будет идти и смотреть что метод делает, а как иначе?

с макросом тоже самое, тогда в чем преимущества метода в 1 строку и макроса в 1 строку?

причем макрос занимает всего 1 строку в хедере, когда как методу нужен класс исполнения
у макроса правда не указан тип передачи, это да это минус
0
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
20.05.2013, 14:43 12
в том-то и дело, что будет он не громоздким, а читабельным, понятным, готовым к изменениям, проще говоря конфеткой будет ваш проект, а не говнищем из 90х
может вы еще для краткости переменные называете strCp, rmDir, cnct ?
0
14 / 22 / 4
Регистрация: 20.01.2013
Сообщений: 125
20.05.2013, 14:45 13
может вы еще для краткости переменные называете strCp, rmDir, cnct
не угадали
что будет он не громоздким, а читабельным, понятным, готовым к изменениям
как бы не вижу связи между

приминением helper класса, макросов, сингтон с утилитами

и общей гибкости архитектуры проекта?

выше указанные инструменты не блокируют стандарты кода, а просто "упрощают" разработку
0
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
20.05.2013, 14:47 14
Цитата Сообщение от alexpac26 Посмотреть сообщение
опятже если, вынести в метод, то темже ALT надо будет идти и смотреть что метод делает, а как иначе?
с макросом тоже самое, тогда в чем преимущества метода в 1 строку и макроса в 1 строку?
причем макрос занимает всего 1 строку в хедере, когда как методу нужен класс исполнения
у макроса правда не указан тип передачи, это да это минус
боже мой, да вы заядлый говнокодер и вам тут любой об этом скажет, несчастные те люди, которым прийдется писать с вами проекты и несчастные те заказчики, которые свяжутся с вами

преимущество метода в том, что он может легко использовать данные инстанса класса, а так же четко и понятно описывает часть его поведения

ладно, вам тут все-равно бестолку что-то объяснять и пытаться направить на путь хорошего и качественного программирования

говнокодьте себе на здоровье
0
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
20.05.2013, 14:54  [ТС] 15
Предлагаю заканчивать.
alexpac26, попадете на серьезный проект, в серьезную команду, там вам все объяснят на практике отучат лениться (в наборе идентификаторов) и покажут преимущества code completion Единственная беда - переучиваться придется. Потому как, поверьте старому небритому дядьке, ни один разумный PM на своем проекте такого безобразия не потерпит. Стандарты кодирования, они как правила дорожного движения - потом и кровью писаны.
0
14 / 22 / 4
Регистрация: 20.01.2013
Сообщений: 125
20.05.2013, 14:56 16
все переучиваются

проста как бы стандарты стандартами но у каждой "команды" же есть свои "фишки"
свои "компоненты" "классы" и прочие инструменты, не все же с молотком и гвоздями собирается
0
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
20.05.2013, 14:59 17
Цитата Сообщение от alexpac26 Посмотреть сообщение
приминением helper класса, макросов, сингтон с утилитами
да не синглтон, а статический класс, вы же методы выносите а не данные...
какой хелпер класс? вы его так и называете HelperClass?

как насчет дебага, как насчет того, что макросы не могут работать в рантайме, а только на этапе компиляции
боже да в интернете миллион людей говорит что не стоит использовать макросы если можно вынести код в функцию\метод

хотя бы тут
http://stackoverflow.com/quest... -vs-method
0
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
20.05.2013, 15:02  [ТС] 18
Цитата Сообщение от Vorona Посмотреть сообщение
как насчет дебага, как насчет того, что макросы не могут работать в рантайме, а только на этапе компиляции
Зачем дебаг? Писать надо правильно! Без ошибок! И никакой дебаг не нужен :-P

Да, на всякий случай:
0
14 / 22 / 4
Регистрация: 20.01.2013
Сообщений: 125
20.05.2013, 15:04 19
как насчет дебага, как насчет того, что макросы не могут работать в рантайме
баг в макросе? о да откуда там может быть баг?

боже да в интернете миллион людей говорит что не стоит использовать макросы если можно вынести код в функцию\метод
зачем тогда они не дать хедеру 2 раз через компилятор пройти? вот их истинное предназначение?

#ifndef

#endif
0
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
20.05.2013, 15:09 20
зачем тогда goto в С?
может вы и его юзаете раз оно там есть?

для строк, значений глобальных (что тоже есть плохо в 21 веке)

ладно, не буду больше спорить, удачи вам в вашей карьере с таким подходом
0
20.05.2013, 15:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2013, 15:09
Помогаю со студенческими работами здесь

Сгенерировать пароль по буквам в логине
Вариант 15 1. - случайные заглавные буквы английского алфавита. 2. (где mod 10 - остаток от...

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

Моргание экрана при логине
Запускаю компьютер - нужно ввести пароль(начинает моргать экран) все ввожу правильно и жму enter....

Вылеты при логине в опере
Проблема в следующем - при логине на каком-либо сайте (ну естессно где авторизация требуется) через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru