Запись в таблице в следующую строку

one

Client
Регистрация
22.09.2015
Сообщения
6 831
Благодарностей
1 273
Баллы
113
Что то мне подсказывает что я повторяюсь, но все же. Есть список данных аккаунтов в таблице из которой берутся данные и записываются обратно. Надо что бы текущий аккаунт записывал данные в ячейку следующего аккаунта.
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 176
Благодарностей
2 179
Баллы
113
Так просто увеличить бы номер строки с которой работаем на +1 временно.
 
  • Спасибо
Реакции: one

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 100
Благодарностей
129
Баллы
63
А если требуется перезаписать строку с добавлением новой ячейки, например, "статус"
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 176
Благодарностей
2 179
Баллы
113
ХЗ, я бы советовал костылями на C#. Поскольку не встречал такой функции «замены строки», то думаю что оптимально сначала:
1. вырезать все последующие строки после нужной в список временно (как здесь парень подобное делает).
2. сделать «удаление нужной строки» (она у нас теперь последняя в таблице будет)
3. потом «добавление строки» но уже со старыми+новой ячейками. Она добавится в конец, то есть как раз на место старой.
4. добавляем в конец теперь те вырезанные строки из списка.

Или подскажите кто умнее решение.
 
  • Спасибо
Реакции: one

one

Client
Регистрация
22.09.2015
Сообщения
6 831
Благодарностей
1 273
Баллы
113

one

Client
Регистрация
22.09.2015
Сообщения
6 831
Благодарностей
1 273
Баллы
113
Мммм... Нет, не понял.... Вот как в такой конструкции записать данные поля USER_PROFILE_NAME в следующую строку поля USER_PROFILE_NAME_2

Код:
// возвращаем строку в конец списка
lock(SyncObjects.TableSyncer){
    project.Tables["AccountsList"].AddRow(project.Variables["USER_NAME"].Value+"\t"+project.Variables["USER_PASSWORD"].Value+"\t"+project.Variables["USER_EMAIL"].Value+"\t"+project.Variables["USER_EMAIL_PASSWORD"].Value+"\t"+project.Variables["USER_PROFILE_NAME"].Value+"\t"+project.Variables["PROXY"].Value);
}
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 176
Благодарностей
2 179
Баллы
113
. Надо что бы текущий аккаунт записывал данные в ячейку следующего аккаунта.
Здесь вы пишите что вносите данные в йчейку. Я ожидал метод типа SetCell. а на деле код ниже делает добавление целой строки с набором ячеек (AddRow).
...
Код:
// возвращаем строку в конец списка
lock(SyncObjects.TableSyncer){
    project.Tables["AccountsList"].AddRow(project.Variables["USER_NAME"].Value+"\t"+project.Variables["USER_PASSWORD"].Value+"\t"+project.Variables["USER_EMAIL"].Value+"\t"+project.Variables["USER_EMAIL_PASSWORD"].Value+"\t"+project.Variables["USER_PROFILE_NAME"].Value+"\t"+project.Variables["PROXY"].Value);
}
Так что хз что тут подсказать. Добавьте еще раз такую же строку опять что ли...
 
  • Спасибо
Реакции: one

backoff

Client
Регистрация
20.04.2015
Сообщения
6 013
Благодарностей
6 449
Баллы
113
я ж много раз писал как...
Надо что бы текущий аккаунт записывал данные в ячейку следующего аккаунта.
бери с удалением и записывай его в конец файла.

А если требуется перезаписать строку с добавлением новой ячейки, например, "статус"
перезаписывай строку которая содержит уникальное слово, например ЛОГИН

ЕСЛИ таких слов нет, то просто пронумеруйте все строки назвав все строки тип
id1
id2
и тп
и по этим id делайте че хотите
 
  • Спасибо
Реакции: one

one

Client
Регистрация
22.09.2015
Сообщения
6 831
Благодарностей
1 273
Баллы
113
Здесь вы пишите что вносите данные в йчейку. Я ожидал метод типа SetCell. а на деле код ниже делает добавление целой строки с набором ячеек (AddRow).
Ну может есть другое решение данной задачи, я бы посмотрел.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 831
Благодарностей
1 273
Баллы
113
бери с удалением и записывай его в конец файла.
Так берется с у далением и пишется обратно в конец. Вот полный цикл. Надо USER_PROFILE_NAME записать в USER_DELETE_PROFILE_NAME следующей строки.

Код:
lock(SyncObjects.TableSyncer){
   
    // берем первую строку с удалением и раскидываем значения по переменным
    var row = project.Tables["AccountsList"].GetRow(0).ToList();
    project.Tables["AccountsList"].DeleteRow(0);
    project.Variables["USER_NAME_ID"].Value = row[0];
    project.Variables["USER_NAME"].Value = row[1];
    project.Variables["USER_PASSWORD"].Value = row[2];
    project.Variables["USER_EMAIL"].Value = row[3];
    project.Variables["USER_EMAIL_PASSWORD"].Value = row[4];
    project.Variables["USER_PROFILE_NAME"].Value = row[5];
    project.Variables["USER_DELETE_PROFILE_NAME"].Value = row[6];
    project.Variables["PROXY"].Value = row[7];
}
// тут что-то делаем с полученными из таблицы данными

// возвращаем строку в конец списка
/ock(SyncObjects.TableSyncer){
    project.Tables["AccountsList"].AddRow(project.Variables["USER_NAME"].Value+"\t"+project.Variables["USER_ACCOUNT_BTC_WALLET"].Value+"\t"+project.Variables["USER_REFERRAL_ID"].Value+"\t"+project.Variables["USER_REFERRALS"].Value+"\t"+project.Variables["USER_PROXY_IP"].Value+"\t"+project.Variables["USER_PROFILE_ID"].Value+"\t"+project.Variables["USER_EMAIL"].Value+"\t"+project.Variables["USER_EMAIL_PASSWORD"].Value+"\t"+project.Variables["USER_PASSWORD"].Value);
}
 

one

Client
Регистрация
22.09.2015
Сообщения
6 831
Благодарностей
1 273
Баллы
113
Надо USER_PROFILE_NAME записать в USER_DELETE_PROFILE_NAME следующей строки.
Все таки не следующей а первой строки. В принципе я так понимаю можно дополнительным запросом только как указать конкретную строку, в данном случае 0.
 

one

Client
Регистрация
22.09.2015
Сообщения
6 831
Благодарностей
1 273
Баллы
113
Вот такое решение сочинил.
Код:
// Пишем в первую строку конкретную ячейку
// get table by name "MyTable"
IZennoTable table = project.Tables["MyTable"];
// set value into cell
table.SetCell("G", 0, project.Variables["USER_PROFILE_NAME"].Value);
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)