Yararlı Kütüphane için Fonksiyonlar

Acoupotan

Forum Üyesi
22 Eyl 2022
166
0
0
Egypt
Bilgisayardaki network kartlarının tanımlı olan mac adres bilgilerini liste halinde getirir.
//uses*Winapi.Nb30 eklenmeli
function GetMACAddress: TStringList;
var
* AdapterList: TLanaEnum;
* NCB: TNCB;
* nIndex: integer;
begin
* Result := TStringList.Create;
* FillChar(NCB, SizeOf(NCB), 0);
* NCB.ncb_command := Char(NCBENUM);
* NCB.ncb_buffer := @AdapterList;
* NCB.ncb_length := SizeOf(AdapterList);
* Netbios(@NCB);
* if Byte(AdapterList.length) > 0 then
* begin
* * for nIndex := 0 to Byte(AdapterList.length) - 1 do
* * begin
* * * Result.Add(GetAdapterInfo(AdapterList.lana[nIndex]));
* * end;
* end;
end;Verilen dosyayı*
//verilen dosya adını byte array olarak sonuç veriyor.
function FileToByteArray(const FileName: WideString): TArray;
const
*BLOCK_SIZE = 1024;
var
*BytesRead, BytesToWrite, Count: integer;
*F: file of Byte;
*pTemp: Pointer;
begin
*AssignFile(F, FileName);
*Reset(F);
*try
* *Count := FileSize(F);
* *SetLength(Result, Count);
* *pTemp := @Result[0];
* *BytesRead := BLOCK_SIZE;
* *while (BytesRead = BLOCK_SIZE) do
* *begin
* * *BytesToWrite := Min(Count, BLOCK_SIZE);
* * *BlockRead(F, pTemp^, BytesToWrite, BytesRead);
* * *pTemp := Pointer(LongInt(pTemp) + BLOCK_SIZE);
* * *Count := Count - BytesRead;
* *end;
*finally
* *CloseFile(F);
*end;
end;

//parametre olarak*verilen byte array bilgiyi verilen dosyaya yazıyor.
procedure ByteArrayToFile(const ByteArray: TBytes; const FileName: string);
var
*Count: Integer;
*F: file of Byte;
*pTemp: Pointer;
begin
*AssignFile(F, FileName);
*Rewrite(F);
*try
* *Count := Length(ByteArray);
* *pTemp := @ByteArray[0];
* *BlockWrite(F, pTemp^, Count);
*finally
* *CloseFile(F);
*end;
end;
//CharInSet fonksiyonu gibi array içinde istenilen bilgi var mı kontrol ediyor. Birden fazla farklı veri tiplerine göre bilgilerde kontrol yapıyor.
function CheckIntegerInArray(pArr: ArrayInteger; pKey: Integer): Boolean;
var
* n1: Integer;
begin
* Result := False;
* for n1 := 0 to Length(pArr) - 1 do
* begin
* * if pKey = pArr[n1] then
* * * Result := True;
* * Exit;
* end;
end;

function CheckStringInArray(pArr: TArray; pKey: string): Boolean;
var
* n1: Integer;
begin
* Result := False;
* for n1 := 0 to Length(pArr) - 1 do
* begin
* * if pKey = pArr[n1] then
* * * Result := True;
* * Exit;
* end;
end;
Dosyanın boyutunu veriyor
{$IFDEF MSWINDOWS}
function GetFileSize(pFileName: string): Int64;
var
*vSearchRec: TSearchRec;
begin
{$WARN SYMBOL_PLATFORM OFF}
*//SearchRec.Size property works, but only for files less than 2GB
*if FindFirst(pFileName, faAnyFile, vSearchRec) = 0 then
* *Result := Int64(vSearchRec.FindData.nFileSizeHigh) shl Int64(32) + Int64(vSearchRec.FindData.nFileSizeLow)
*else
* *Result := 0;
*FindClose(vSearchRec);
{$WARN SYMBOL_PLATFORM ON}
end;
{$ENDIF MSWINDOWS}
string içinde hangi karakterden kaç tane olduğunu söylüyor
Bu fonksiyon string helper içinde CountOfChar olarak tanımlı ama eski sürümlerde bu bilgi yok bu nedenle bunları da paylaşıyorum.
function CountOfChar(pSrc: string; pDelimiter: Char): Integer;
var
* n1: Integer;
begin
* Result := 0;
* for n1 := Low(pSrc) to High(pSrc) do
* * if pSrc[n1] = pDelimiter then
* * * Inc(Result);
end;
Verilen bilgiyi girilen anahtar ile şifreler.*Şifre anahtar değeri*(0-65535 aralığında) ile bilgiyi şifrelemek için kullanılır.*TC Kimlik No bilgisini şifrelemek için
Tam tersi şifreli bilgiyi çözmek için şifreli bilgiyi, öncesinde kullanılan*şifreleme anahtarı gönderip normal bilgiye ulaşabiliriz.
EncryptStr('30850331144', 14257); //Sonuç: 040EF0D744DA01BA36DAE5
DeCryptStr('040EF0D744DA01BA36DAE5', 14257); //Sonuç: 30850331144function EncryptStr(const S: WideString; Key: Word): string;
var
*n1: Integer;
*vRStr: RawByteString;
*vRStrB: TBytes absolute vRStr;
begin
*Result := '';
*vRStr := UTF8Encode(S);
*for n1 := 0 to Length(vRStr) - 1 do
*begin
* *vRStrB[n1] := vRStrB[n1] xor (Key shr 8);
* *Key := (vRStrB[n1] + Key) * CKEY1 + CKEY2;
*end;

*for n1 := 0 to Length(vRStr) - 1 do
* *Result := Result + IntToHex(vRStrB[n1], 2);
end;

function DecryptStr(const S: string; Key: Word): string;
var
*n1, vTmpKey: Integer;
*vRStr: RawByteString;
*vRStrB: TBytes absolute vRStr;
*vTmpStr: string;
begin
*vTmpStr := UpperCase(S);
*SetLength(vRStr, Length(vTmpStr) div 2);
*n1 := 1;
*try
* *while (n1 < Length(vTmpStr)) do
* *begin
* * *vRStrB[n1 div 2] := StrToInt('$' + vTmpStr[n1] + vTmpStr[n1 + 1]);
* * *Inc(n1, 2);
* *end;
*except
* *Result := '';
* *Exit;
*end;

*for n1 := 0 to Length(vRStr) - 1 do
*begin
* *vTmpKey := vRStrB[n1];
* *vRStrB[n1] := vRStrB[n1] xor (Key shr 8);
* *Key := (vTmpKey + Key) * CKEY1 + CKEY2;
*end;

*Result := UTF8ToString(vRStr);
end;
//Color dialog penceresi varsayılan renk ataması yapıyoruz.
function GetDialogColor(pColor: TColor = 0): TColor;
var
*vColorDialog: TColorDialog;
begin
*vColorDialog := TColorDialog.Create(nil);
*try
* *vColorDialog.Color := pColor;
* *vColorDialog.Execute(Application.Handle);
* *Result := vColorDialog.Color;
*finally
* *vColorDialog.Free;
*end;
end;

//klasör seçtirme dialog u seçilen klasörün yolunu veriyor.
{$WARN SYMBOL_PLATFORM OFF}
function GetDialogDirectory(pInitialDir: string): string;
var
*OpenDialog: TFileOpenDialog;
begin

*OpenDialog := TFileOpenDialog.Create(nil);
*try
* *if pInitialDir = '' then
* * *OpenDialog.DefaultFolder := '%USERPROFILE%\desktop'
* *else
* * *OpenDialog.DefaultFolder := pInitialDir;

* *OpenDialog.Title := 'Select Directory';
* *OpenDialog.Options := [fdoPickFolders, fdoPathMustExist, fdoForceFileSystem]; // YMMV
* *OpenDialog.OkButtonLabel := 'Select';

* *if OpenDialog.Execute then
* * *Result := OpenDialog.FileName;
*finally
* *OpenDialog.Free;
*end
end;
{$WARN SYMBOL_PLATFORM ON}
Kendi işlerimde kullandığım fonksiyonları paylaşıyorum.
 

Genel Forum

Türkçe Forum Siteleri

İnternette bilgi paylaşımı ve tartışma ortamı arayanlar için forum siteleri uzun yıllardır popüler bir tercih olmuştur. Her yaştan ve ilgi alanından kullanıcıya hitap eden genel forum siteleri, teknoloji, oyun, kültür ve daha pek çok konuda geniş içerik sunmaktadır. Bu platformlar, katılımcıların hem öğrenme hem de eğlenceli vakit geçirme ihtiyaçlarını karşılamaktadır.

Genel Forum Sitesi

İnternette Türkçe forumlar üzerinden içerik paylaşmak, dil bariyerini ortadan kaldırarak yerel kültüre uygun bir deneyim sunar. Türkçe forum siteleri, kullanıcıların bilgiye kolayca ulaşabileceği, aynı zamanda sosyal ve eğlenceli paylaşımlar yapabileceği platformlar oluşturur. Türkiye'deki internet kullanıcıları için bu forumlar, ilgi çekici konularda derinlemesine sohbetler sunar.

Genel Forum Siteleri

Günlük hayatın stresinden uzaklaşmak isteyenler için eğlenceli forumlar, keyifli bir alternatif sunar. Farklı hobilere ve ilgi alanlarına yönelik içeriklerle dolu olan bu forum paylaşım siteleri, kullanıcılarına samimi bir ortamda vakit geçirme fırsatı sunarken, aynı zamanda yeni insanlarla tanışma imkanı da sağlar. Eğlenceli paylaşımlar ve interaktif etkinliklerle dolu olan bu platformlar, hem öğrenmeyi hem de keyifli vakit geçirmeyi bir arada sunar.

İnternette yeni bir topluluk arayan ya da bilgi alışverişi yapmak isteyenler için genel forum siteleri harika bir başlangıç noktasıdır. Geniş bir kullanıcı kitlesine hitap eden Türkçe forumlar, herkesin ilgisini çekecek konularla doludur. Siz de bu platformlara katılarak, kendi ilgi alanlarınıza uygun başlıklarda sohbetlere katılabilir ve katkıda bulunabilirsiniz. 

Not : Lütfen Çekim Paylaşım Forumları için sitemizi kullanmayın.

Üst