delphi 遍历html的td并删除,[转]delphi 删除动态数组的指定元素

type

TArr = array of TPoint; {把数组先定义成一个类型会方便许多, 这里仅用 TPoint 测试}

{删除动态数组指定元素的过程: 参数 arr 是数组名, 参数 Index 是要删除的索引}

procedure DeleteArrItem(var arr: TArr; Index: Integer);

var

Count: Cardinal;

begin

Count := Length(arr);

if (Count = 0) or (Index < 0) or (Index >= Count) then Exit;

Move(arr[Index+1], arr[Index], (Count-Index)* SizeOf(arr[0]));

SetLength(arr, Count - 1);

end;

{测试}

procedure TForm1.Button1Click(Sender: TObject);

var

arr: TArr;

i: Integer;

begin

{测试数据}

SetLength(arr, 5);

arr[0].X := 1; arr[0].Y := 111;

arr[1].X := 2; arr[1].Y := 222;

arr[2].X := 3; arr[2].Y := 333;

arr[3].X := 4; arr[3].Y := 444;

arr[4].X := 5; arr[4].Y := 555;

{删除第四个元素, 并查看删除后的结果}

DeleteArrItem(arr, 3);

for i := 0 to Length(arr) - 1 do

Memo1.Lines.Add(Format('%d, %d', [arr[i].X, arr[i].Y]));

end;

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

有时使用动态数组的指针更方便, 简单修改即可:

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

type

TArr = array of TPoint;

PArr = ^TArr;

{过程}

procedure DeleteArrItem(p: PArr; Index: Integer);

var

Count: Cardinal;

begin

Count := Length(p^);

if (Count = 0) or (Index < 0) or (Index >= Count) then Exit;

Move(p^[Index+1], p^[Index], (Count-Index)* SizeOf(p^[0]));

SetLength(p^, Count - 1);

end;

{测试}

procedure TForm1.Button1Click(Sender: TObject);

var

arr: TArr;

i: Integer;

begin

SetLength(arr, 5);

arr[0].X := 1; arr[0].Y := 111;

arr[1].X := 2; arr[1].Y := 222;

arr[2].X := 3; arr[2].Y := 333;

arr[3].X := 4; arr[3].Y := 444;

arr[4].X := 5; arr[4].Y := 555;

DeleteArrItem(@arr, 3);

for i := 0 to Length(arr) - 1 do

Memo1.Lines.Add(Format('%d, %d', [arr[i].X, arr[i].Y]));

end;

Delphi 的动态数组

传统的Pascal 语言其数组大小是预先确定的,当你用数组结构声明数据类型时,你必须指定数组元素的个数.专业程序员也许知道些许动态数组的实现技术,一般是采用指针,用手工分配并释放所需的内存. Delp ...

【LeetCode每天一题】Find First and Last Position of Element in Sorted Array&lpar;找到排序数组中指定元素的开始和结束下标&rpar;

Given an array of integers nums sorted in ascending order, find the starting and ending position of ...

js 删除数组的指定元素

//为数组对象增加相应的的方法,直接调用数组的removeByValue方法即可删除指定元素 Array.prototype.removeByValue = function (val) { for ...

Delphi泛型动态数组的扩展--转贴

此文章转载于http://www.raysoftware.cn/?p=278&tdsourcetag=s_pcqq_aiomsg的博客 从Delphi支持泛型的第一天起就有了一种新的动态数组类 ...

JavaScript 删除某个数组中指定的对象和删除对象属性

Javascript: 删除指定对象:使用过程中只适合删除对象,如果数组中添加的是类型Function的话是删除不了的. function removeObjWithArr(_arr,_obj) { ...

JavaScript 删除某个数组中指定的对象

返回对象在数组中的下标: _arr表示一个Array数组,里面包括了很多的对象如下图: _obj表示某一个数组对象     function getIndex (_arr,_obj) { var le ...

删除php数组中的元素

删除一个元素,且保持原有索引不变 使用 unset 函数,示例如下: <?php $array = array(0 => "a", 1 => "b&qu ...

LeetCode 27 Remove Element (移除数组中指定元素)

题目链接: https://leetcode.com/problems/remove-element/?tab=Description   Problem : 移除数组中给定target的元素,返回剩 ...

javaScript 删除数组中指定元素

Array.prototype.indexOf = function(val) { for (var i = 0; i < this.length; i++) { if (this[i] == ...

随机推荐

【语言基础】c&plus;&plus; 备忘录

1. C++ 整数类型范围 可以参照头文件limits.h定义的宏 #define INT_MAX       2147483647(32bit, 最大10位十进制) #define UINT_MAX ...

CSS3写常用的形状

正方形: 1 .square{ width: 100px;height: 100px; background: #E57779;}   长方形: .rectangle{ width: 200px;he ...

修改Ubuntu Server的分辨率

修改Ubuntu Server的分辨率,其实就是找到关键的文件,然后修改参数,重启一下,就可以看见效果了. 1.打开文件并修改参数 文件位置:/etc/default/grub 修改位置:GRUB_C ...

各位Coder看过来

为了丰富博客内容,也为了解决一些实际的问题,现准备出一系列博文,内容为各位回复评论指明需要的知识点,将在近期为你解决并提供还算精要的讲解:评论内容要求 Coder:+需要的技术内容.技术内容不限领域, ...

&lbrack;LeetCode&rsqb; Remove 9 移除9

Start from integer 1, remove any integer that contains 9 such as 9, 19, 29... So now, you will have ...

Python——Flask框架——电子邮件

一.框架(Flask-Mail) 安装 : pip install flask-mail 二.SMTP服务器的配置 配置 默认值 说明 MAIL_SERVER locallhost 电子邮件服务器的主 ...

基于PLC1850平台的ICMP包请求与响应

一.以太网IP包报文格式 IP包是连接在以太网首部(以太网目的MAC地址(6个字节)+以太网源MAC地址(6个字节)+帧类型(2个字节))之后. IP报文中各个字段分析如下: ①.版本:在IP报文中, ...

Holiday、Vacation、Days off、Leave、Break

http://write.scu.edu.tw/view.php?bd=mistake&no=25 這些字在英文的用法中都有放假.休息的意思,但用法卻不太一樣,接下來就來看看它們的不同吧. 『 ...

使用SharedPreference和对象流存储对象

编写PreferencesUtils工具类可以简单对象(可以缓存对象中所有public的简单属性)   另外研究了Preference存储与直接采用对象文件缓存方式的区别 第一次写文件时 1.效率,直 ...

UI基础三:简单的BOL报表开发

巧了...刚好一个需求,就直接来撸起来吧. 需要做一个报表: 1.创建查询结构和结果结构 2.创建实施类: SE24创建ZCL_JPEXPORT_ORDER_IL 更改父类:CL_WCF_GENIL_ ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值