날짜가 들어있는 입력 .txt 파일이 있습니다. 날짜는 08JUN98 또는 16NOV05와 같이 DDMONYY 형식입니다. 이 날짜를 파일의 생성 날짜와 비교하여 어느 날짜가 더 빠르는지 확인해야합니다.문자열의 날짜를 FILETIME으로 변환합니다.
FILETIME은 특히 CompareFileTime 함수가 있기 때문에 적절한 형식으로 보입니다. 그러나 날짜를 파일 시간으로 변환하는 데 문제가 있습니다.
파일에서 날짜를 추출하여 숫자 (일 1-31 일, 일 1-12, 년 1900-20)로 변환 할 수 있으므로 도움이 필요하지 않지만 자유롭게 의견을 말하십시오. 어쨌든.
실제 문제는 이러한 값을 FILETIME 형식으로 가져 오는 방법을 알 수 없다는 것입니다. 지금 당장 나는 3 개의 다른 문자열 (또는 int가 더 도움이된다면)을 하루, 한달 그리고 한 해 동안 하나씩 가지고 있습니다. 당신이 문자열에서 FILETIME으로 뛰어 내리는 것을 도울 수 있다면 그것은 좋을 것입니다.
또는 연구 중에 놓친 완전히 다른 방법이 있다면 언제든지 제안하십시오.
원하는 경우 내가 가지고있는 글을 게시 할 수는 있지만 문자열/int에 도달하기 때문에 도움이 될 것이라고 생각하지 않습니다.
그것이 어떤 명확하게하는 경우, 5 월 3 일, 2002 년에 나는이 시점에서 내 변수에있는 값은
string day = "03";
string month ="5";
string year = "2002;
int dayint = 3;
int monthint = 5;
int yearint = 2002;
의 라인을 따라 뭔가 것 그리고 방법이 필요합니다 이것을 FILETIME으로 변환 하시려면
감사합니다.
편집 :
나는 내가 SYSTEMTIME
구조, 또는 어떻게 다른 시간 시스템을 수행하는 방법을 채우기 얼마나 확실하지 않다. 그래서 나는 그것이 내 질문이라고 생각한다.
필자도 정확도가 필요한 것으로 언급해야합니다. 시간과 그보다 더 작은 것이 내게 정말로 관심사가 아닙니다.
EDIT2 : 그 작동하는 것 같다 때문에
내가의 SYSTEMTIME
INT 값을주고 시도하지 않아야합니다. 그러나, 나는 그 systemtime을 filetime으로 변환하려고 할 때 문제에 직면 해있다. "오류 :"SYSTEMTIME "에서"const SYSTEMTIME * "까지 적절한 변환이 없습니다"라고 나와 있습니다. 이 문제를 해결하는 방법을 모르겠다. 왜냐하면 systime 변수를 const SYSTEMTIME
으로 정의하면 값을 할당 할 수 없기 때문이다. 그것은 물론
SYSTEMTIME systime;
LPFILETIME ftime1;
LPFILETIME ftime2;
int dayint=6;
int monthint=12;
int yearint=1989;
systime.wDay = dayint;
systime.wMonth = monthint;
//and so on for year, hour, etc.
SystemTimeToFileTime(systime,ftime1); //This is where the aforementioned error occurs
GetFileTime(filename, NULL, NULL, ftime2); //I'm also not sure about this line... feel free to critique it. I'm only interested in the last written time so I put NULL for the other times... When I check the values for this (in SYSTEMTIME) it only returns 52428, so I don't think this line is working correctly...
CompareFileTime(ftime1,ftime2);
을 도움이된다면
여기, 관련 코드입니다, 일, 월, 년에 대한 값은 실제 코드에 하드 코딩되어 있지 않습니다.
EDIT3 :
는 내가 그 문제를 해결하려고하는거야 나쁜 핸들 ....
있습니다 ....나는 그것을 얻을 수없는 경우 당신의 도움이 벤 보이트 에 대한 덕분에, 내가 다시
구조체에서 변수를 할당하는 방법을 모른다면 좋은 C++ 책을 얻으십시오 : http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list –
거의 다 왔지만,이 함수들은'SYSTEMTIME' 또는'FILETIME' 구조체의 주소를 원합니다. 그래서'SystemTimeToFileTime (& systime, & ftime1)'등을 말하십시오 ('&'연산자는 변수의 주소를 얻습니다.) 주소를 포인터라고합니다.) 또한, 'SYSTEMTIME'의 다른 필드 (예 :시, 분, 초)를 설정해야합니다. 걱정하지 않으면 자정을 사용할 수 있습니다. 그리고 함수가 성공했는지 확인하기 위해 함수의 반환 값을 확인해야합니다. –
고마워, 그게 내가 필요한거야. 나는 시대의 정점을 놓치고 있었다. 그래서 올바르게 이해한다면,'SystemTimeToFileTime' 함수는 실제 변수가 아닌 변수의 주소를 필요로합니까? 또한, 이제는'GetFileTime'을 사용하는 데 문제가 있습니다. 실제로'FILETIME'을 리턴하지는 않을 것이고, 각 필드에 52428의 값을 줄 것입니다. 다음 GetFileTime (filename, NULL, NULL, & ftime2);이 (가) 사용 중입니까? 문제가 있습니까? – user1533323