Страница: 1 | 
		
		 
			   
			 
			 Как с помощью CopyMemory удалять\вставлять элементы в массив. Заранее благодарен 
			 
			 Вот на счет вставлять - не знаю, а вот удалять, эт пожалуйста    Вставлять тоже не сложно, только нужно зарезервировать область памяти для того, чтобы не затереть байт, который будет копироваться следующим сдвигом вправо элементов таблицы (как я понимаю, CopyMemory копирует байты от меньшего адреса к большему, последовательно). Т.е. если нужно вставить элемент в позицию n (считая от нуля), где 0-й элемент находится по адресу p, а длина одного элемента в байтах b и адрес зарезервированной области c, надо скопировать память от p+n до конца массива в c длиной b*число_элементов_после_n-1, потом записать элемент n, потом скопировать память той же длины из c в n+p+b Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Массивы
     
    
Добавлено: 16.01.04 20:26
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 inc | ICQ: 244202544 
      
       
  
 
    
Граждане!!!, Помогите пожалуйста!
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 2
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 sne
![]()
![]()
![]()
![]()
![]()
Разработчик Offline Client
ICQ: 233286456 
Вопросов: 34
Ответов: 5445
      
 Web-сайт:  
 Профиль |  | #1
      
Добавлено:  16.01.04 22:09
       
    
       
  
 
    
))Private Function RemoveCtl(ByVal Index As Integer) As Integer
    Dim ub As Long
    ub = UBound(ctlData)
       Call CopyMemory(ctlData(Index), ctlData(Index + 1), Len(ctlData(Index)) * (ub - Index)) 
    Else
        Erase ctlData
    End If
End Function  
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 Sharp
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Лидер форума
ICQ: 216865379 
Вопросов: 106
Ответов: 9979
      
 Web-сайт:  
 Профиль |  | #2
      
Добавлено:  17.01.04 21:51