Witam, otóż próbuje wpisac do plików różne rzeczy. Nie mialem z tym problemów dopóki nie zapragnąłem wpisać czegoś do pliku za pomocą
function(); i procedure();. Czyli w skrocie chce stworzyc gotową procedure, która będzie wpisywala mi do danego pliku podany przeze mnie stały tekst(zawsze na końcu). Nie wiem do konca jak mam polaczyc zmienne w sekcji var ze zmiennymi w procedurze. Pozdrawiam i czekam na jakies pomysly.
Ja proponuję od przeczytania kursu. W każdym kursie pascala (czy turbo czy innego) jest napisane jak tworzyć funkcje i procedury.
Tak jak pisał poprzednik. Ale masz coś na zachęte w czystym WinAPI i pisane na szybko pod Delphi 7. Natomiast dla Lazarusa/FPC, należało by dodać za pewne dyrektywę {$MODE DELPHI}
zaraz po nagłówku project
aby skompilować bez błędów. Sam kod wzięty z części źródła mojej prostej usługi pisanej dla wprawki, bo po co mam wymyślać koło na nowo. Skoro Tobie się nie chce nawet pogooglować i pokombinować. Obyś jednak zrobił to następnym razem. Dział Newbie czy nie - to nie ma znaczenia.
program googlujujesz_albo_giniesz;
{$APPTYPE CONSOLE}
uses
Windows;
const
Log_File = 'D:\test.txt';
function AnsiFileExists(const FileName : string) : boolean;
const
FILE_ATTRIBUTE_REPARSE_POINT = 1024;
var
FileHandle : THandle;
WFD : TWin32FindData;
begin
Result := False;
FileHandle := Windows.FindFirstFile(PChar(FileName), WFD);
if FileHandle <> INVALID_HANDLE_VALUE then
begin
Result := (WFD.dwFileAttributes and FILE_ATTRIBUTE_REPARSE_POINT = 0)
and (WFD.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY = 0);
Windows.FindClose(FileHandle);
end;
end;
function FileSeek(Handle, Offset, Origin : integer) : integer;
begin
Result := SetFilePointer(THandle(Handle), Offset, nil, Origin);
end;
function SaveOrAppendTextToFile(AFileName : string; InStr : string; AppendFile : boolean) : boolean;
const
Append_Arr : array[boolean] of DWORD = (CREATE_ALWAYS, OPEN_ALWAYS);
var
OutFile : THandle;
BytesWritten : DWORD;
OutFileSize : integer;
begin
OutFile := CreateFile(PChar(AFileName), GENERIC_WRITE,
FILE_SHARE_READ, nil, Append_Arr[AppendFile], FILE_ATTRIBUTE_NORMAL, 0);
Result := OutFile <> INVALID_HANDLE_VALUE;
if Result then
begin
OutFileSize := Length(InStr);
if AppendFile then
begin
FileSeek(OutFile, 0, FILE_END);
end;
WriteFile(OutFile, InStr[1], OutFileSize, BytesWritten, nil);
CloseHandle(OutFile);
end;
end;
function WriteToLog(Str : string) : boolean;
begin
Str := Str + #13#10;
Result := SaveOrAppendTextToFile(Log_File, Str, AnsiFileExists(Log_File));
end;
begin
WriteToLog('Najpierw googluj, kobminuj samodzielnie do bólu, a na forum pisz w ostateczności!');
end.
Groza napisał(a)
Witam, otóż próbuje wpisac do plików różne rzeczy.
No no, wysiliłeś się z opisem...
Groza napisał(a)
Czyli w skrocie chce stworzyc gotową procedure, która będzie wpisywala mi do danego pliku podany przeze mnie stały tekst(zawsze na końcu).
Poczytaj o Append lub strumieniach, np. TFileStream i jego właściwości Position
;
Groza napisał(a)
Nie wiem do konca jak mam polaczyc zmienne w sekcji var ze zmiennymi w procedurze.
Wyjaśnij dokładniej co potrzebujesz zrobić, bo z Twojego opisu część trzeba się domyślać... Ale jeśli dobrze przypuszczam, to coś kombinujesz ze zmienną globalną modułu i zmienną lokalną procedury; Więc nie kombinuj i nie deklaruj zmiennych globalnych, jeśli nie musisz; A jeśli wartość ze zmiennej globalnej chcesz zapisać razem z wartością zmiennej lokalnej to po prostu ją przekaż w argumencie.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.