var s: searchrec;
findfirst ('c:\*.*',VolumeID,s);
if doserror=0 then writeln(s.name);
на фри сделал так:
var s: tsearchrec;
if findfirst ('c:\*.*',faVolumeID,s)=0 then writeln(s.name);
findclose(s);
не работает.
Как надо?
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
![]() ![]()  | 
	
| Билли Боб | 
                        
			
			  
			
				 Сообщение
					#1				
			 
		 | 
	
| 
        	
        		 Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Репутация:    0           	 | 
       
			
			 На TP вот так работает: 
			
			
					
		
 на фри сделал так: 
 не работает. Как надо?  | 
	
| IUnknown | 
                        
			
			  
			
				 Сообщение
					#2				
			 
		 | 
	
        	
        		![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Ада: Разработчик Embarcadero Delphi: Сторонник Free Pascal: Разработчик Репутация:    627           	 | 
       
			
			 Цитата не работает. Не надо так категорично. Работает, но не везде: под чистым ДОС-ом (при использовании GO32v2) этот код прекрасно покажет метку диска. Во всех остальных случаях - нет. Проблема в том, что получение метки диска - операция некроссплатформенная, и для ее выполнения необходимо использовать API твоей системы. Работаешь под Windows - значит, GetVolumeInformation. А эту константу faVolumeID уже давно пора объявить deprecated, как сделали в Дельфи | 
	
| Билли Боб | 
                        
			
			  
			
				 Сообщение
					#3				
			 
		 | 
	
| 
        	
        		 Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Репутация:    0           	 | 
       
			
			 а GetVolumeInformation под ДОСом будет работать? 
			
			
					
		 | 
	
| IUnknown | 
                        
			
			  
			
				 Сообщение
					#4				
			 
		 | 
	
        	
        		![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Ада: Разработчик Embarcadero Delphi: Сторонник Free Pascal: Разработчик Репутация:    627           	 | 
       
			
			 Цитата GetVolumeInformation под ДОСом будет работать? Нет, конечно. Если нужно и там и там (и Win32 и DOS) - то можно воспользоваться условной компиляцией (если программа будет перекомпилироваться на целевой платформе, разумеется) :{$IF Defined(WIN32)}
  | 
	
| Билли Боб | 
                        
			
			  
			
				 Сообщение
					#5				
			 
		 | 
	
| 
        	
        		 Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Репутация:    0           	 | 
       
			
			 Можешь написать пример использования GetVolumeInformation? 
			
			
					
		Что-то я попробовал, все равно не выводит метку.  | 
	
| IUnknown | 
                        
			
			  
			
				 Сообщение
					#6				
			 
		 | 
	
        	
        		![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Ада: Разработчик Embarcadero Delphi: Сторонник Free Pascal: Разработчик Репутация:    627           	 | 
       
			
			 Ну, например, вот так: 
			
			
					
		function GetVolumeLabel(const DriveLetter: Char): string; Проверить не могу, по причине отсутствия Windows, тестируй, если что не так - говори...  | 
	
| Билли Боб | 
                        
			
			  
			
				 Сообщение
					#7				
			 
		 | 
	
| 
        	
        		 Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Репутация:    0           	 | 
       
			
			PChar(DriveLetter + ':\') Illegal type conversion: ShortString to ^PChar GetVolumeLabel := VolumeName; Incompatible types: got "array [0..259] of Char" expected "ShortString"  | 
	
| IUnknown | 
                        
			
			  
			
				 Сообщение
					#8				
			 
		 | 
	
        	
        		![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Ада: Разработчик Embarcadero Delphi: Сторонник Free Pascal: Разработчик Репутация:    627           	 | 
       
			
			{$H+}
 первой строкой программы, или Options -> Compiler -> Syntax -> включить Use AnsiStrings. Если этот режим отключен - то String трактуется как ShortString, что приводит к ошибкам... | 
	
| Билли Боб | 
                        
			
			  
			
				 Сообщение
					#9				
			 
		 | 
	
| 
        	
        		 Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Репутация:    0           	 | 
       
			
			 ооотлично! работает! 
			
			
					
		 | 
	
![]() ![]()  | 
	
 
  | 
		Текстовая версия | 4.11.2025 13:48 |