• 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

Вывод номера счета в ячейку Excel

  • Автор темы Автор темы semantics
  • Дата начала Дата начала
S

semantics

Проблема - обнуление половины номера счета

При выводе длинного числа в Excel- 20-значный номер счета (тип переменной ACC - string)
Ap.Cells[i,7]:=ACC;

вторая половина номера выдается нулями:
вместо - 40702810500000000385
выдается - 40702810500000000000

Если задать текстовый формат ячейки Excel - в ячейке появляется галочка - признак ошибки преобразования числа
Более короткие числа выдаются без проблем
 
Добавьте апостроф перед числовой строкой.
Excel (для ячеек общего формата ) преффиксный апостоф воспринимает как команду отображать данные ячейки в виде строки.
Сам апостроф при этом в ячейке не отображается.
Код:
Ap.Cells[i,7] := '''' + ACC;

Но более правильно все же работать с Экселем через интерфейсы экспортируемые юнитом ExcelXP.pas

Код:
uses
ExcelXP, OfficeXP, ActiveX;
...
type
TForm1 = class(TForm)
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
...

begin
ExcelApplication1.Connect;
...
ExcelWorksheet1.ConnectTo(ExcelApplication1.ActiveWorkbook.ActiveSheet as _Worksheet);
... 
// вот так
ExcelWorksheet1.Cells.Item[i,7].Value := '''' + ACC {'40702810500000000385'};
// или так
ExcelWorksheet1.Cells.Item[i,7].Text := '''' + ACC {'40702810500000000385'};
// а еще лучше явно указать формат данных
ExcelWorksheet1.Cells.Item[i,7].NumberFormat := '@';
ExcelWorksheet1.Cells.Item[i,7].Value := ACC {'40702810500000000385'};
...
ExcelApplication1.Visible[0] := true;
ExcelWorksheet1.Disconnect;
ExcelApplication1.Disconnect;
end;
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!

Курс AD