Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!
22 страниц V  « < 2 3 4 5 6 > »   
Ответить в данную темуНачать новую тему
> Курилка программистов, Флуд на около программерские темы
RayTwitty
сообщение 25.10.2016, 22:23
Сообщение #61


Игровой Бог
**********************

Репутация:   648  
Группа: Участник
Сообщений: 5354
Награды: 9
Регистрация: 24.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


С ужасом обнаружил, что в JS нету функции формата строки аля С++ ohmy.gif

В Lua есть:
Код
str = "world"
print(string.format("hello %s", str))
--> hello world


Нашел некий аналог для JS:
https://www.npmjs.com/package/string-format

Но тут строка форматируется в несколько ином виде:
Код
var str = "world";
console.log(format("hello {0}", str))
--> hello world


Существует ли первый вариант для JS?


--------------------
Перейти в начало страницы
 
Молния в вакууме
сообщение 25.10.2016, 22:46
Сообщение #62


Почти Игроман
*********

Репутация:   187  
Группа: Участник
Сообщений: 647
Награды: 4
Регистрация: 05.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


RayTwitty, а зачем она там, когда можно "hello " + "world"?
Перейти в начало страницы
 
RayTwitty
сообщение 25.10.2016, 22:52
Сообщение #63


Игровой Бог
**********************

Репутация:   648  
Группа: Участник
Сообщений: 5354
Награды: 9
Регистрация: 24.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Нашел.
http://pastie.org/811028

Цитата(saas @ 25.10.2016, 22:44) *
а зачем она там, когда можно "hello " + "world"?

Это для примера.


--------------------
Перейти в начало страницы
 
1001v
сообщение 26.10.2016, 11:50
Сообщение #64


Доктор Игровых Наук
*******************

Репутация:   1084  
Группа: Участник
Сообщений: 3950
Награды: 6
Регистрация: 24.08.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(RayTwitty @ 25.10.2016, 22:21) *
Существует ли первый вариант для JS?

В es2015 можно сделать вот так:
Код
let str = "world";
console.log(`hello ${str}`); // => hello world

Обрати внимание на обратные кавычки `, будет работать только с ними.


--------------------

Перейти в начало страницы
 
Cossack-HD
сообщение 26.10.2016, 13:47
Сообщение #65


TECHNOSLAV 80 уровня
**********************

Репутация:   379  
Группа: Участник
Сообщений: 5758
Награды: 6
Регистрация: 26.01.2014




Вставить ник Цитировать выделенное в форуму быстрого ответа


Вопрос по C# MVC

Есть база данных с тремя таблицами. Запилена модель WebsiteDBEntities.
Суть такова: не получается скинуть List с таблицами в View

Код
    public class HomeController : Controller
    {
        WebsiteDBEntities WebsiteDB;
        List<List<object>> listCeption;

        public HomeController()
        {
            WebsiteDB = new WebsiteDBEntities();
        
            listCeption = new List<List<object>>();
            listCeption.Add(new ((object)WebsiteDBEntities().organizations.ToList()));
            listCeption.Add(new ((object)WebsiteDBEntities().persons.ToList()));
            listCeption.Add(new ((object)WebsiteDBEntities().connections.ToList()));
        }

        public ActionResult Index()
        {
            return View(new WebsiteDBEntities().organizations.ToList());
        }
}

КО кричит, что List для object не может принимать organization, person, connection. Кастинг не проходит.
Какие есть варианты запихнуть три модели в один List?

Сообщение отредактировал Cossack-HD - 26.10.2016, 13:51


--------------------
Ryzen 3700X
Arctic Freezer 33 eSports Duo
16GB DDR4 3600MHz
Strix GTX 1080 TI
Перейти в начало страницы
 
abramcumner
сообщение 26.10.2016, 14:04
Сообщение #66


Игровое Воплощение
*********************

Репутация:   394  
Группа: Участник
Сообщений: 4791
Награды: 4
Регистрация: 27.04.2011




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Cossack-HD @ 26.10.2016, 13:45) *
listCeption.Add(new ((object)WebsiteDBEntities().organizations.ToList()));

Здесь написана какая-то ересь - после new разве не должен тип указываться?

Тогда уж списки как-то так передавать надо:
Код
var orgView = new List<object>();
foreach(var org in WebsiteDBEntities().organizations)
  orgView.Add(org);
listCeption.Add(orgView);


А вообще это какой-то крайне порочный путь.
Перейти в начало страницы
 
RedMagic
сообщение 26.10.2016, 14:05
Сообщение #67


Высший Игровой Бог
************************

Репутация:   1747  
Группа: Супермодератор
Сообщений: 12594
Награды: 15
Регистрация: 05.11.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Хм. Объединить три модели в одну? У каждой же модели поля разные, как listView поймет какие поля куда пихать?
Ну и еще, список перед добавлением в listView приводится к типу object, но ведь listView не поймет какие поля есть в object. Для этого нужно передавать именно тип/класс конкретного list.
---
С C#/MVC работал давно, так что могу ошибаться. Все уже позабыл.


--------------------
Перейти в начало страницы
 
jamakasi
сообщение 26.10.2016, 16:31
Сообщение #68


Доктор Игровых Наук
*******************

Репутация:   544  
Группа: Участник
Сообщений: 3657
Награды: 9
Регистрация: 12.07.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Cossack-HD @ 26.10.2016, 13:45) *
listCeption = new List<List<object>>();
            listCeption.Add(new ((object)WebsiteDBEntities().organizations.ToList()));
            listCeption.Add(new ((object)WebsiteDBEntities().persons.ToList()));
            listCeption.Add(new ((object)WebsiteDBEntities().connections.ToList()));

Я как ява программист и не особо знающий шарпея сильно преполагаю что не проканает такое.
Во первых: new List<List<object>>(); Лист в которым Лист в котором объекты??? Косяк.
Во вторых: существует ли реализация метода ToList у organizations, persons и connections? Или же там реализация от родителя?
В третьих: listCeption.Add(new ((object)WebsiteDBEntities().organizations.ToList())); По логике той же явы конкретно такое написание говорит о том что в listCeption пытаются Add(1 ЭЛЕМАНТ А НЕ ЛИСТ) запихнуть кучу. Хотя в савокупности с первым пунктом и если его правильно реализацивоть то такое возможно. Либо же тут(в шарпе) нет метода AddAll который подразумевает всунуть кучу.
В четвертых, опять же незнаю как это в шарпе но в яве для решения подобной задачи и создания таблицы(на самом деле чего угодно) нужно сначала сделать interface или абстрактный класс общий и от него сделать реализации модели(собственно данные из бд в твоем случае) и графического элемента(представление) View. В таком случае если вызывать SomeView.Add(new SomeData()) то табличка\гуи\pojo корректно автоматом разложит все по полочкам. В т.ч. можно реализовать множественный View который отобразит корректно даже разные типы данных или же будет строить дерево таблиц вложенных таблицами с данными(Это исходя из new List<List<object>>()).
В пятых: юзать тип Object крайне нежелательно, опять же отталкиваюсь от явы.

Касательно ответа на вопрос:
Цитата(Cossack-HD @ 26.10.2016, 13:45) *
Какие есть варианты запихнуть три модели в один List?

Не юзай Object!!! Сделай 1 родительский interface(класс если в шарпе нет интерфейсов) и реализуй его в своих organizations, persons и connections. Дальше в листе тип данных будет родительский interface\класс и в него уже пихаешь потомков.
Перейти в начало страницы
 
RayTwitty
сообщение 29.10.2016, 19:37
Сообщение #69


Игровой Бог
**********************

Репутация:   648  
Группа: Участник
Сообщений: 5354
Награды: 9
Регистрация: 24.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Вопрос следующего характера - имеется самописный парсер конфигов для nodeJS. Для чтения файла используется внутренняя функция readFileSync, которая возвращает массив строк. Строки в файле выглядят как "ключ = значение". Значение может включать в себя специальные символы (вроде '\n' - перенос на следующую строку). После чтения файла функцией readFileSync, почему-то, все эти специальные символы распознаются как обычные, например '\n' как '\' и 'n', соответственно переноса строки не происходит. Кодировка файла конфига UTF-8, кодировка обрабатывающего .js тоже UTF-8.
В итоге был написан костыль, который заменяет в строке два отдельных символа '\' и 'n' на один '\n'.

В чем собственно вопрос - почему так происходит и может быть есть нормальный парсер для node JS (гугление по русскому и английскому сегменту инета результата не дали)?


--------------------
Перейти в начало страницы
 
1001v
сообщение 29.10.2016, 20:36
Сообщение #70


Доктор Игровых Наук
*******************

Репутация:   1084  
Группа: Участник
Сообщений: 3950
Награды: 6
Регистрация: 24.08.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(RayTwitty @ 29.10.2016, 19:35) *
которая возвращает массив строк

Она возвращает буфер или строку. Из документации:
Цитата
If the encoding option is specified then this function returns a string. Otherwise it returns a buffer.

Поэтому просто прочитай и порежь:
Код
fs.readFileSync('filename', 'utf8').match(/[^\r\n]+/gu)


--------------------

Перейти в начало страницы
 
RayTwitty
сообщение 29.10.2016, 21:44
Сообщение #71


Игровой Бог
**********************

Репутация:   648  
Группа: Участник
Сообщений: 5354
Награды: 9
Регистрация: 24.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(1001v @ 29.10.2016, 20:34) *
Она возвращает буфер или строку. Из документации:

Да, просто забыл, что сразу в строку перевел и разбил на части через split('\n').
И да, видимо toString делает аналогичное, что и вызов readFileSync с опцией "utf8".

Цитата(1001v @ 29.10.2016, 20:34) *
Поэтому просто прочитай и порежь:

Вроде бы, никаких изменений - \n как не читался, так и не читается.

З.Ы. У меня кстати подсветка синтаксиса в sublime с твоим шаблоном сломалась biggrin.gif

Сообщение отредактировал RayTwitty - 29.10.2016, 21:59


--------------------
Перейти в начало страницы
 
1001v
сообщение 29.10.2016, 22:02
Сообщение #72


Доктор Игровых Наук
*******************

Репутация:   1084  
Группа: Участник
Сообщений: 3950
Награды: 6
Регистрация: 24.08.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


RayTwitty, split оставляет пустую строку последним элементом, по-моему.

Цитата(RayTwitty @ 29.10.2016, 21:42) *
Вроде бы, никаких изменений - \n как не читался, так и не читается.


У меня нормально.

Или я не понимаю, что тебе нужно.


--------------------

Перейти в начало страницы
 
RayTwitty
сообщение 29.10.2016, 22:09
Сообщение #73


Игровой Бог
**********************

Репутация:   648  
Группа: Участник
Сообщений: 5354
Награды: 9
Регистрация: 24.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(1001v @ 29.10.2016, 22:00) *
Или я не понимаю, что тебе нужно.

Скачай файл и выведи его в консоль.
Должно вывести именно это (массив из двух элементов):
вызов console.log(array[0]):
Код
test1 = One1
Two1

вызов console.log(array[1]):
Код
test2 = One2
Two2


Сообщение отредактировал RayTwitty - 29.10.2016, 22:39


--------------------
Перейти в начало страницы
 
1001v
сообщение 29.10.2016, 22:46
Сообщение #74


Доктор Игровых Наук
*******************

Репутация:   1084  
Группа: Участник
Сообщений: 3950
Награды: 6
Регистрация: 24.08.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


RayTwitty,
Код
fs.readFileSync('filename', 'utf8').split(/\\n|\n/gu)


Цитата(RayTwitty @ 29.10.2016, 21:42) *
З.Ы. У меня кстати подсветка синтаксиса в sublime с твоим шаблоном сломалась

Это из-за флага u, он появился только в es6.


--------------------

Перейти в начало страницы
 
Молния в вакууме
сообщение 29.10.2016, 22:56
Сообщение #75


Почти Игроман
*********

Репутация:   187  
Группа: Участник
Сообщений: 647
Награды: 4
Регистрация: 05.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(RayTwitty @ 29.10.2016, 20:35) *
В итоге был написан костыль, который заменяет в строке два отдельных символа '\' и 'n' на один '\n'.

Почему костыль? По идее, функция которая читает данные из файла и не должна сама расшифровывать escape-последовательности.

Ты же вроде знаешь C++, и даже ассемблер, а такие странные вопросы задаёшь.
Перейти в начало страницы
 
RayTwitty
сообщение 29.10.2016, 23:33
Сообщение #76


Игровой Бог
**********************

Репутация:   648  
Группа: Участник
Сообщений: 5354
Награды: 9
Регистрация: 24.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(saas @ 29.10.2016, 22:54) *
По идее, функция которая читает данные из файла и не должна сама расшифровывать escape-последовательности.

На самом деле проблема была в другом - на строки readFileSync разбивает таки нормально, а вот спец. символы записанные явно, представляет как экранированные. Это я понял, когда тестил варианты от 1001v. В моем случае, для значения ключа, достаточно просто сделать replace('\\n', '\n').

Проблема решена. Плюсы в репутацию поставил smile.gif

Сообщение отредактировал RayTwitty - 29.10.2016, 23:35


--------------------
Перейти в начало страницы
 
Shoкer
сообщение 12.11.2016, 02:29
Сообщение #77


Кандидат Игровых Наук
******************

Репутация:   2153  
Группа: Участник
Сообщений: 3488
Награды: 4
Регистрация: 27.07.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Возник небольшой вопрос по поводу работы Visual Studio и её компилятора, может кто знает ответ. Весь текст копировать не буду, оставлю просто ссылку - https://github.com/OpenXRay/xray-16/issues/148.

Сами файлы можно посмотреть здесь:
https://github.com/OpenXRay/xray-16/blob/de...gine/Effector.h
https://github.com/OpenXRay/xray-16/blob/de...ActorEffector.h
https://github.com/OpenXRay/xray-16/blob/de...torEffector.cpp

Сообщение отредактировал Shoкer - 12.11.2016, 02:29


--------------------
Мне просто нравятся синие буквы под сообщением.
Перейти в начало страницы
 
RedMagic
сообщение 12.11.2016, 09:56
Сообщение #78


Высший Игровой Бог
************************

Репутация:   1747  
Группа: Супермодератор
Сообщений: 12594
Награды: 15
Регистрация: 05.11.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Shoкer, а ты проверил тот класс? Может он действительно недоступен для наследования?
PS: полагаю, очистка и полная пересборка проекта (точнее, нужного подпроекта, в решении) уже была сделана? VS (как и многие IDE) часто грешит этой проблемой.
PSS: Скорее всего, проблема как раз в новой версии VS / компиляторе. Наверняка в новой версии что-то запретили делать так как было раньше и в итоге возникает предупреждение об ошибке. К сожалению, с C++ работал давно, поэтому ничего конкретного сказать не могу. Кроме как в строке ошибки перейти к определению (комбинацию клавиш в VS тоже забыл laugh.gif ) и посмотреть то место.


--------------------
Перейти в начало страницы
 
autistic
сообщение 12.11.2016, 11:45
Сообщение #79


Геймер
******

Репутация:   86  
Группа: Участник
Сообщений: 128
Награды: 4
Регистрация: 05.05.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Shoкer @ 12.11.2016, 04:27) *
Возник небольшой вопрос по поводу работы Visual Studio и её компилятора, может кто знает ответ.

я так понимаю inherited - это какое-то макроопределение препроцессора, полагаю, что этот макрос разворачивается в этой строке:
Код
inherited::inherited::ProcessCam(info)

в что-то типа
Код
CAnimatorCamEffector::CAnimatorCamEffector::ProcessCam(info)


Сообщение отредактировал refuse - 12.11.2016, 11:46


--------------------
nop
Перейти в начало страницы
 
Молния в вакууме
сообщение 12.11.2016, 11:54
Сообщение #80


Почти Игроман
*********

Репутация:   187  
Группа: Участник
Сообщений: 647
Награды: 4
Регистрация: 05.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


refuse, нет, inherited это родительский класс.

Код
class A
{
    ...
};

class B : public A
{
    typedef A inherited;
    ....
};
Перейти в начало страницы
 

22 страниц V  « < 2 3 4 5 6 > » 
Ответить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.03.2024, 16:45