Difference between revisions of "ubuntu kernelversion number/de"

From Lazarus wiki
m
m (ordinal numbers in syntaxhighlight)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{ubuntu kernelversion number}}
 
{{ubuntu kernelversion number}}
<br>
+
 
<br>
+
Zurück zur Seite [[code examples/de|Code Beispiele]].
Dieser Artikel beschäftigt sich mit der Linuxprogrammierung (Ubuntu).<br>
+
 
Die Prozedur ermittelt die aktuelle Versionsnummer des Kernels.<br>
+
Dieser Artikel beschäftigt sich mit der Linuxprogrammierung (Ubuntu).
<br>
+
 
<syntaxhighlight>
+
Die Prozedur ermittelt die aktuelle Versionsnummer des Kernels.
 +
<syntaxhighlight lang="pascal">
 
uses
 
uses
 
   SysUtils, ...;
 
   SysUtils, ...;
Line 15: Line 16:
 
   txtDatei: Textfile;
 
   txtDatei: Textfile;
 
begin
 
begin
   Assignfile(txtDatei, '/proc/version'); //Weist txtDatei die Datei zu
+
   Assignfile(txtDatei, '/proc/version'); // weist txtDatei die Datei zu
   reset(txtDatei); //Öffnet die Datei zum Lesen
+
   reset(txtDatei); // oeffnet die Datei zum Lesen
   readln(txtDatei, Result); //liest die erste Zeile
+
   readln(txtDatei, Result); // liest die erste Zeile
   Closefile(txtDatei); //Schließt die Datei
+
   Closefile(txtDatei); // schliesst die Datei
 
end;
 
end;
  
Line 32: Line 33:
 
   Result := '';
 
   Result := '';
  
   strProcVersion := funLeseDatei;
+
   strProcVersion := funLeseDatei();
 
   if strProcVersion = '' then
 
   if strProcVersion = '' then
 
     exit;
 
     exit;
Line 52: Line 53:
 
end;
 
end;
 
    
 
    
  ...
+
...
 
+
</syntaxhighlight>
 +
 
 +
Das ganze läßt sich strukturierter mit {{Doc|package=RTL|unit=baseunix=identifier=fpuname|text=<syntaxhighlight lang="pascal" enclose="none">FPUname</syntaxhighlight>}} ermitteln:
 +
<syntaxhighlight lang="pascal" line highlight="3-5,16-17,21,27-28">
 +
program kerninfo(input, output, stderr);
 +
 
 +
uses
 +
// baseUnix for fpUname
 +
baseunix,
 +
// sysutils for format
 +
sysutils,
 +
// gettext for internationalization
 +
gettext;
 +
 
 +
resourcestring
 +
unameFailure  = 'uname(2) failed';
 +
releaseNumber = 'release number: %0:s';
 +
versionNumber = 'version number: %0:s';
 +
 
 +
var
 +
kernelInfo: utsName;
 +
begin
 +
translateResourceStrings('./' + applicationName() + '.%s.mo');
 +
 +
if fpUname(kernelInfo) <> 0 then
 +
begin
 +
writeLn(stderr, unameFailure);
 +
halt(1);
 +
end;
 +
 +
writeLn(format(releaseNumber, [kernelInfo.release]));
 +
writeLn(format(versionNumber, [kernelInfo.version]));
 +
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
+
 
<br>
+
{{AutoCategory}}
--[[User:Olaf|Olaf]] 06:14, 29 May 2013 (UTC)
+
[[Category:Code Snippets/de]]
[[Category:Code Parts/de]]{{AutoCategory}}
 

Latest revision as of 17:41, 11 April 2018

Deutsch (de)

Zurück zur Seite Code Beispiele.

Dieser Artikel beschäftigt sich mit der Linuxprogrammierung (Ubuntu).

Die Prozedur ermittelt die aktuelle Versionsnummer des Kernels.

uses
  SysUtils, ...;

  ...

function funLeseDatei: string;
var
  txtDatei: Textfile;
begin
  Assignfile(txtDatei, '/proc/version'); // weist txtDatei die Datei zu
  reset(txtDatei); // oeffnet die Datei zum Lesen
  readln(txtDatei, Result); // liest die erste Zeile
  Closefile(txtDatei); // schliesst die Datei
end;


function funKernelversionsNummer: string;
var
  intI: integer = 0;
  intZaehler: integer = 0;
  strProcVersion: string = '';

begin

  Result := '';

  strProcVersion := funLeseDatei();
  if strProcVersion = '' then
    exit;

  for intI := 1 to Length(strProcVersion) do
  begin

    if (strProcVersion[intI] = '-') then
    begin
      intZaehler := intZaehler + 1;
      if intZaehler > 1 then break;
    end;

    if (strProcVersion[intI] in ['0'..'9', '.', '-']) then
      Result := Result + strProcVersion[intI];

  end;

end;
  
...

Das ganze läßt sich strukturierter mit FPUname ermitteln:

 1 program kerninfo(input, output, stderr);
 2 
 3 uses
 4 	// baseUnix for fpUname
 5 	baseunix,
 6 	// sysutils for format
 7 	sysutils,
 8 	// gettext for internationalization
 9 	gettext;
10 
11 resourcestring
12 	unameFailure  = 'uname(2) failed';
13 	releaseNumber = 'release number: %0:s';
14 	versionNumber = 'version number: %0:s';
15 
16 var
17 	kernelInfo: utsName;
18 begin
19 	translateResourceStrings('./' + applicationName() + '.%s.mo');
20 	
21 	if fpUname(kernelInfo) <> 0 then
22 	begin
23 		writeLn(stderr, unameFailure);
24 		halt(1);
25 	end;
26 	
27 	writeLn(format(releaseNumber, [kernelInfo.release]));
28 	writeLn(format(versionNumber, [kernelInfo.version]));
29 end.