brodny napisał(a)
A może spróbuj utworzyć plik o testowanej nazwie? Jeśli funkcja zwróci błąd - to mamy jakiś problem
W tym problem że niskopoziomowa funkcja API o nazwie CreateFile jak podam jej plik o nazwie "abc : abc.txt" NIE ZWRACA BŁĘDU, tylko tworzy plik o nazwie "abc" bez rozszerzenia. GetLastError nie zwraca INVALID_HANDLE_VALUE bo plik został utworzony.
drumers napisał(a)
function DelChar(s: String): String;
var i: Byte;
begin
if Length(s) > 225 then s := Copy(s, 1, 225);
Result := '';
for i := 1 to Length(s) do
if not (s[i] in [#9, '/', '\', '?', '|', '.', '"', '*', ':', '<', '>', ',']) then
Result := Result + s[i];
end;
Ja rozwiązałem kiedyś to sobie tak, ale pomysł Brodnego wydaje się lepszy. :)
Pomysł Brodnego niestety ale nie jest lepszy - sprawdzałem na różne sposoby :)
Twóje rozwiązanie to także moje rozwiązanie ;) Mam taką samą funkcję tylko w troszkę innej postaci :)
Ale kilka zastrzeżeń do tej funckcji
Kropka, przecinek w nazwie może wystąpić :/
' " ' - co to jest :/ zamień to na ' " ' bez ""
A o #9 nie miałem pojęcia ale dorzucę ten znaczek do niedozwolonych
Aha i te 225 :/ chyba 255 ale to by się zastąpiło stałą MAX_PATH
Chcę zrobić test przed zapisem bo jak podam nazwę pliku "abc : abc.txt" to tworzy plik "abc" ALE jak plik "abc" istnieje to zostanie nadpisany A TEGO NIE CHCĘ bo to błąd w programie.
BTW: Kurde, programista musi chyba wszystko przewidzieć ;)