1

(5 відповідей, залишених у C#, .NET)

Звітую.

Вдалося все чудово "зпарсити" через запропонований Вами підхід через Caml запит.

Використовував такий варіант побудови запиту:

<View Scope='Recursive'><RowLimit>5000</RowLimit></View>

Тобто "читав" пачками по 5к (ліміт).
По суті, отримав те, що й треба було і без LINQ.

Дуже дякую!

2

(5 відповідей, залишених у C#, .NET)

leofun01 написав:

То певно треба використовувати

query.ViewAttributes = "Scope=\"Recursive\"" // <View Scope='Recursive'>

(1, 2, 3).

Дякую!
Спробую через Caml.

Дам знати, як щось вийде.

3

(5 відповідей, залишених у C#, .NET)

Так, вибачте, не зовсім чітке формулювання задачі.

Глобально задача така:
- Через CSOM (Client SharePoint Object Model) треба з певного SharePoint list дістати структуру папок (саме об'єктами, а не стрічками) з певною глибиною вкладеності (тобто n - максимально допустима глибина вкладеності папок, які ми беремо).

Маю щось таке:

        static void Main(string[] args)
        {
            var creds = new NetworkCredential(username, password, domain);

            using (var context = new ClientContext(url))
            {

                context.Credentials = creds;

                var list = context.Web.Lists.GetByTitle("Data");
                context.Load(list, l => l.RootFolder.Folders.Include(
                        f => f.Folders.Include(f2 => f2.Folders.Include(
                        f3 => f3.Folders.Include(f4 => f4.Folders)))));
                context.ExecuteQuery();

                var folders = list.RootFolder.Folders; //по суті рекурсивно з певним лімітом вкладеності n можна перебрати в циклі або рекурсивно - це не проблема.
            }
        }

4

(5 відповідей, залишених у C#, .NET)

Всім привіт!

Є наступне завдання.
Треба динамічно (залежно від заданого цілого числа n) побудувати LINQ запит типу такого:

context.Load(list, l=>l.RootFolder.Folders.Include(f => f.Folders.Include(f2 => f2.Folders.Include(f3 => f3.Folders.Include(f4 => f4.Folders))))); //це було побудовано вручну, треба динамічно

Тобто вкладеність ось цих Include extension методів має бути n.

Можливо хтось пробував щось таке робити?


Буду вдячний за будь-яку відповідь.

Всім чудового дня, дякую

5

(4 відповідей, залишених у C++)

Наразі дякую, панове, дійду до ПК спробую ;)

6

(4 відповідей, залишених у C++)

Усім доброго часу доби!
Попросили перевести з Паскалю на C++ наступну програму(вона має дописувати мінімальну к-сть символів в кінець стрічки аби та стала паліндромом, якщо це потрібно) :

var s:array[1..2000] of char;
    tn,i,j,n:integer;
    chetn,flag:boolean;
begin
i:=0;
flag := false;
writeln('Введите строку');
repeat
i:=i+1;
read(s[i]);
until s[i]=#13;       
n:=i-1;
for i:=n div 2 + 1 to n do    
  begin
  for j:=1 to n-i do
    if s[i+j]<>s[i-j] then break;
  if (i=n-1) and (s[i+j]<>s[i-j]) then
    begin
    flag := true;
    break;
    end;
  if (j=n-i) and (s[i+j]=s[i-j]) then break;
  end;
if(flag=true)then
begin 
i:=n;
flag:=false;
end;
tn:=i;
for i:=(n+1) div 2 + 1 to n do       
  begin
  for j:=1 to n-i+1 do
    if s[i-j]<>s[i+j-1] then break;
  if (i=n) and (s[i-j]<>s[i+j-1]) then
    begin
    flag:=true;
    break;
    end;
  if (j=n-i+1) and (s[i-j]=s[i+j-1]) then break;   
  end;
  if(flag=true)then i:=n+1;
if 2*i-n-2<2*tn-n-1 then                    
  begin
  chetn:=true;
  tn:=i
  end else chetn:=false;
if chetn=false then                          
  begin
  writeln(2*tn-n-1);
  for i:=1 to 2*tn-n-1 do
    s[n+i]:=s[2*tn-n-i];
  n:=2*tn-1;
  end;
if chetn=true then
  begin
  writeln(2*tn-n-2);
  for i:=1 to 2*tn-n-2 do
    s[n+i]:=s[2*tn-n-1-i];
  n:=2*tn-2;
  end;
for i:=1 to n do write(s[i]);
writeln;
readln;
end.

Доречі Паскальний код працює чудово!) Можливо, комусь пригодиться.
Мій варіант перекладу наступний:

#include <iostream>
#include <string> 

using namespace std;



int main()
{
    string str; 
    bool flag; 

    cout << "Enter string : ";
    cin >> str;

    int length = str.length(); 
    int i, j, tn;

    
    for (i = (length-1) / 2 + 1; i < length; i++)
    {
        for (j = 0; j < length - i-1; j++)
        {
            if (str[i + j-1] != str[i - j-1])
                break;
        }
        if (i == length - 2 && (str[i + j-1] != str[i - j-1]))
        {
            i = length-1;
            break;
        }
        if (j == length - i-1 && (str[i + j-1] == str[i - j-1]))
            break;
    }
    tn = i;

    for (i = (length) / 2 + 1; i < length; i++)
    {
        for (j = 0; j < length - i-1; j++)
            if (str[i - j - 1] != str[i + j - 2])
                break;

        if (i == length && (str[i - j-1] != str[i + j - 2]))
        {
            i = length;
            break;
        }
        if (j == length - i + 1 && (str[i + j-1] == str[i - j-2]))
            break;
    }

    
    if ((2 * i - length -2) < (2 * tn - length-1))
    {
        flag = true;
        tn = i;
    }
    else flag = false;

    
    if (flag == false)
    {
        for (i = 0; i < 2 * tn - length; i++)
            str.push_back(str[2 * tn - length - i-1]);            
    }
    
    if (flag == true)
    {
        for (i = 0; i < 2 * tn - length - 1; i++)
            str.push_back(str[2 * tn - length - i- 2]);
    }
    
    cout << "Result : " << str << endl;

    return 0;
}

Так от, мій код(той що на C++) не працює належним чином.
Мабуть, я десь помилився в індексації або що.
Шукаю помилку сам вже десь 4ту годину і голова пухне, бо не розумію де проблема.

Можливо хтось щось помітить - буду дуже вдячний за допомогу.

7

(7 відповідей, залишених у C++)

Якраз розглядали дану задачу на факультативі і пан koala все вірно підказав.

8

(11 відповідей, залишених у C++)

Добрий день :)
1) Спробував в себе в студії - не свариться. Можливо діло в версії (бо інакше я сам не знаю) :)
2) Ну я зрозумів, що тут :

fscanf(f, "%s", &words[word]);

ви маєте тип char ** а передаєте char* чи щось в тому роді. Тому напевне Вам відповісти не можу.
3)Ну якщо ви хочете передати свій масив слів як параметр функції щоб туди записати слова, то я б так зроби би.

void read_words(FILE *f, int wordsCount, char **words)
{
    for (int word = 0; word < wordsCount; word++)
    {
        fscanf(f, "%s", &(*words[word])); 
    }
    //ну і нічого не треба return нити:)
}

4) Краще, мабуть, було б спочатку зчитувати к-сть слів(те число). Потім виділяти динамічно пам'ять під них (char**). Звісно, ви не будете знати довжини наперед, тому я б виділяв фіксовану кількість під слова (ваша змінна WORD_LENGTH.
Ну взагалі кажучи сам нубаська в цих ділах. Тому, можливо, Вам хтось щось краще порадить.

Ахаха:) Пан koala вже все пояснив.

9

(1 відповідей, залишених у C++)

Ну ідея у Вас вже , безсумнівно, є :) Вона викладена в завданні.
Якщо Вас цікавлять приклади коду , то спробуйте пошукати тут

Прихований текст

google.com

.
Або ж, якщо хочете, щоб хтось з нуля Вам зробив - вкажіть ціну.

Покажіть мені КОД!
Або вкажіть бюджет питання.

11

(25 відповідей, залишених у C++)

ursolira написав:

вже вийшло

if ((a<m[i]) && (m[i]>b))

має бути так :)
в вас просто помилка мала б бути.

12

(25 відповідей, залишених у C++)

Уточніть завдання.
Під інтервалом мається наувазі від комірки a до b ?
Чи це конкретні значення в масиві?

13

(17 відповідей, залишених у C++)

Напишу.
Який бюджет Вашого питання?

14

(388 відповідей, залишених у Алгоритми та структури даних, технології)

vov4ok написав:

Цікавий результат

#include <iostream>
using namespace std;
int main()
{
    int i = 0;
    for( i=0;i<9;i+=2)
        if(++i==5)break;
            else continue;
    cout << (i++) << endl;
}

Та ні :) Досить передбачуваний результат :)
Ключ тут :

i+=2 


В циклі останнє значення змінної i маєм 8.
Умова ніколи не буде істинною, бо тут використовуєте префіксний інкремент.
І в кінці перед виводом збільшуєм значення i на 1. Все :)
В-дь : 9.

15

(6 відповідей, залишених у C++)

Вам сюди :
http://www.cplusplus.com/reference/cstdio/FILE/
Ну і щоб не порушувати послідовність, то :
Дописати за мене курсову і поприбирати двора :)

16

(9 відповідей, залишених у C++)

Чекаю традиційного повідомлення від koala про телепатію і буду цілком з ним згідний ! :)

17

(5 відповідей, залишених у C++)

AnderS0N написав:

Доброго вечора пані та панове.
Щойно виконував таке завдання:

Прихований текст

Вивести на екран:
1 1
2 1 2
3 1 2 3
4 1 2 3 4

23 1 2 3 .. 22 23

Код:

Прихований текст
#include <iostream>

using namespace std;

int main()

{
    for (int i = 1; i <= 1; i++)
        cout << "1 1\n";
        cout << "2 1 2\n";
        cout << "3 1 2 3\n";
        cout << "4 1 2 3 4\n";
        cout << "5 1 2 3 4 5\n";
        cout << "6 1 2 3 4 5 6\n";
        cout << "7 1 2 3 4 5 6 7\n";
        cout << "8 1 2 3 4 5 6 7 8\n";
        cout << "9 1 2 3 4 5 6 7 8 9\n";
        cout << "10 1 2 3 4 5 6 7 8 9 10\n";
        cout << "11 1 2 3 4 5 6 7 8 9 11\n";
        cout << "12 1 2 3 4 5 6 7 8 9 10 11 12\n";
        cout << "13 1 2 3 4 5 6 7 8 9 10 11 12 13\n";
        cout << "14 1 2 3 4 5 6 7 8 9 10 11 12 13 14\n";
        cout << "15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15\n";
        cout << "16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16\n";
        cout << "17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17\n";
        cout << "18 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17\n";
        cout << "19 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19\n";
        cout << "20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20\n";
        cout << "21 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21\n";
        cout << "22 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22\n";
        cout << "23 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23\n";


    system("pause");
    return 0;
}

Так ось питання, як це завдання за допомогою циклів (масивів) зробити швидше і щоб код був не таким великим.
Дякую *DANCE*


Ого. Цикл на 1 ітерацію. Ви серйозно ?)
А по сабжу , то у Вас буде 2 цикли (один в інший вкладений). Причому внутрішній залежатиме від зовнішнього.

18

(79 відповідей, залишених у Робота)

Прихований текст
Master_Sergius написав:

Поки Ви будете думати скільки прийдуть 23-літніх сіньйорів з 10+ років досвіду, то й джунівські вакансії порозбирають. Насамперед, варто просто сходити на співбесіду, щоб хоч мати уявлення про те, що потрібно знати (самих основ програмування недостатньо, потрібно ще бази даних, HTML, жабаскрипт теж зайвими не будуть і т.д. і т.п.).
Багато яких компаній роблять всякі тренінги і навчання, наприклад Айті Академія при СофтСерві, туди попасти легше, хоча теж роблять відбір. А там уже у Вас точно складеться картина того, що потрібно роботодавцям.

Будь мужиком, йди на співбесіду )

Класна штука ця АйТі Академія. Проходив відбір на курси по .NET-y у Львові. То є 4 етапи :
1) - подача заявка + CV(ну тут взаглі все просто);
2) - технічний тест . Я, власне, проходив його онлайн, хоча можуть і в офіс запросити :). По факту - нічого складного. Базові знання синтаксису мови і особливостей - обов'язково. + Як останнє завдання - треба написати програму, згідно умов завдання. На все це - 20 хв. Як я вже раніше сказав - ніц складного, але уважність потрібна, бо трошки недочитав і все - не правильно:)
3) - тестування твого English lvl. Прийшов, поговорив з їхнім викладачем, написав коротенький тест (звісно все це на англійській) і отримав свій рівень. На даний курс вимагався рівень не нижче Intermediate.
4) - співбесіда з рекрутером і технічним експертом.
Тут найвеселіше :) Прийшов, розказав який ти хороший хлопець, повідповідав на питання рекрутера і технічного експерта. Відповідно, даний етап - найважчий :)
5) - Велкам то SoftServeITAcademy.

Але я так і не попав на курс. Зіслались на брак місць (7 всього набирають). :(
Якось так.

19

(2 відповідей, залишених у C#, .NET)

Vbnzuf написав:

Потрібно виконати роботу по курсовій, а часу зовсім нема. Прошу будь якої допомоги. Від нас вимагають таких знань яких вони нам не дають, але не дуже через що й пишу сюди.

Ось саме завдання:

Скласти алгоритм та написати програму для обчислення послідовності n! перестановок на множині {1,2,…, n}

Ну, тут потрібен Ваш код. Як мінімум :)
А як ні - кажіть бюджет завдання!

Дам підказку: пан koala все вірно сказав.
В гуглі є все. Потрібно сісти і розібратись.
Алгоритм :
1) Заходимо google.com
2) Вводимо питання , яке Вас цікавить.
3) Клікаємо по силкам.
4) Аналізуємо інформацію.
5) Створюємо власний алгоритм на основі отриманої інформації (або ж використовуємо готовий - з гугла).
6) Програмуємо це все діло.
7) Профіт. :)

20

(2 відповідей, залишених у Бази даних)

Спасибі!) Працює!
Знатиму на майбутнє.