anoniem Geplaatst: 30 augustus 2009 Delen Geplaatst: 30 augustus 2009 Ik zal wel een van de zeldzame gebruikers van Clipper/xHarbour Builder zijn in Nederland. Met de mij ter beschikking staande versie van xHB is er geen Functie beschikbaar om de Archive attribute op te vragen. In de nieuwere versies wel ( fa = FileAttr(<name>) ), maar dan moet ik weer 150 dollar dokken. Hoe krijg ik dit bit (in weze byte, letter (A)) in een variabele? perloc Quote Link naar reactie
anoniem Geplaatst: 4 november 2009 Auteur Delen Geplaatst: 4 november 2009 Geen enkele reactie gekomen op mijn vraag. Dan wat konkreter. Kan iemand een programmaatje maken in de vorm van: Attrib_prog(<name>.ext) waarbij attrib_prog het te maken programma voorstelt en <name>.ext de te onderzoeken file voorstelt? Dus attrib_prog genereert van <name>.ext de attributes. Bij gebruik zou ik dan het volgende commando kunnen geven: A_but = attrib_prog(<name>.ext) A_but bevat dan de attributes van <name>.ext MVG perloc Quote Link naar reactie
anoniem Geplaatst: 4 november 2009 Auteur Delen Geplaatst: 4 november 2009 Zou dat niet gewoon met het dir commando kunnen? DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N] [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4] [drive:][path][filename] Specifies drive, directory, and/or files to list. [b:344aef4139] /A Displays files with specified attributes. attributes D Directories R Read-only files H Hidden files A Files ready for archiving S System files I Not content indexed files L Reparse Points - Prefix meaning not [/b:344aef4139] /B Uses bare format (no heading information or summary). /C Display the thousand separator in file sizes. This is the default. Use /-C to disable display of separator. /D Same as wide but files are list sorted by column. /L Uses lowercase. /N New long list format where filenames are on the far right. /O List by files in sorted order. sortorder N By name (alphabetic) S By size (smallest first) E By extension (alphabetic) D By date/time (oldest first) G Group directories first - Prefix to reverse order /P Pauses after each screenful of information. /Q Display the owner of the file. /R Display alternate data streams of the file. /S Displays files in specified directory and all subdirectories. /T Controls which time field displayed or used for sorting timefield C Creation A Last Access W Last Written /W Uses wide list format. /X This displays the short names generated for non-8dot3 file names. The format is that of /N with the short name inserted before the long name. If no short name is present, blanks are displayed in its place. /4 Displays four-digit years Switches may be preset in the DIRCMD environment variable. Override preset switches by prefixing any switch with - (hyphen)--for example, /-W. Quote Link naar reactie
anoniem Geplaatst: 4 november 2009 Auteur Delen Geplaatst: 4 november 2009 De bedoeling is dat "A_but = attrib_prog(<name>.ext)" in een programma wordt gebruikt. Ik wil weten of het archieve bit "A" van een bepaalde file is gezet. Als het is gezet dat moet van de file een backup worden gemaakt. Dat moet gebeuren voor een hele rits files, allen met "A" gezet moeten worden gecopiëerd. Ik kan ze natuurlijk ook allen copiëren maar dat duurt een tijd omdat de files groot kunnen zijn en een flink aantal. Alleen een paar hebben het archieve bit gezet, zodat de backup tijd maar kort duurt. Ik schiet niets op met een DIR commando, noch met een ATTRIB commando. De laatste zet de attributes op het scherm, maar ik moet ze in een variabele hebben om er iets mee te kunnen. MVG perloc Quote Link naar reactie
anoniem Geplaatst: 4 november 2009 Auteur Delen Geplaatst: 4 november 2009 Met dir kun je een lijst produceren van alleen bestanden met de archive attribute gezet. Die lijst kun je qua details nog behoorlijk aanpassen met dir opties. Daar moet vast wel een werkbare bestandslijst van te maken zijn. Maar je kunt het probleem wellicht op een andere manier benaderen. Je kunt de bestandsdatum van originele files vergelijken met die van de gebackupte. Nieuwere files zijn hoogstwaarschijnlijk gewijzigd. Dus kun je de files selecteren op het datumverschil, en aan de hand daarvan files al dan niet backuppen. Quote Link naar reactie
anoniem Geplaatst: 4 november 2009 Auteur Delen Geplaatst: 4 november 2009 gerben, je snapt nog niet helemaal mijn probleem. IKZELF hoef niet te weten of een archieve is gezet, maar mijn programma! Met een DIR wordt de lijst op het scherm gezet. Daar heeft mijn programma niets aan. Die wil het zien in een variabele, en dan stuk voor stuk testen. M.a.w. mijn programma heeft in een van de vele menupunten er een om een backup te maken. Als daar ("Make backups") op wordt geselecteerd en met een CR geactiveerd, dan zoekt mijn programma uit van welke files de archieve bit is gezet en maakt daarvan een backup. Datum vergelijking is een mogelijkheid. Ik zal zien of er een routine beschikbaar is die de datum van een file kan lezen. Het heeft namelijk gewerkt. Er was een commando "Attrib(filename.dbf)" die het attribut van de file test, dus zo: If attrib(filename.dbf) = .t. doe dan de backup. Maar dat is van een nieuwere versie van de compiler. Om een of andere duistere reden ben ik de key van dat programma kwijtgeraakt en kan dat dus niet installeren. De oudere versie die wel werkt mist dit commando. Dus vandaar. Ik zal terugmelden of het is gelukt. Zelf nog niet aan gedacht. perloc Quote Link naar reactie
anoniem Geplaatst: 4 november 2009 Auteur Delen Geplaatst: 4 november 2009 Ondertussen ben ik erachter dat de datum vergelijken ook niet gaat omdat ik geen commando beschikbaar heb om de datum van een file te lezen. perloc Quote Link naar reactie
anoniem Geplaatst: 4 november 2009 Auteur Delen Geplaatst: 4 november 2009 Dir kan een lijst produceren. Deze kun je pipen naar en text file. Die text file moet je weer kunnen inlezen. Of het moet al een heel beroerde programmeertaal zijn, die je gebruikt. Quote Link naar reactie
anoniem Geplaatst: 5 november 2009 Auteur Delen Geplaatst: 5 november 2009 Als je me kunt vertellen hoe ik een lijst kan "pipen" naar een tekst file dan ben ik eruit! Want een tekstfile kan ik zonder meer inlezen en bewerken. De programmeertaal die ik gebruik is de Clipper taal, maar dan zeer uitgebreid met vele andere commando's. Kijk maar eens op xHarbour.com of xHarbour.org Ik wil dat programma (mét de Attrib() functie) niet opnieuw aanschaffen want kost 150 dollar, zoiets. MVG perloc Quote Link naar reactie
anoniem Geplaatst: 5 november 2009 Auteur Delen Geplaatst: 5 november 2009 dir>lijst.txt Quote Link naar reactie
anoniem Geplaatst: 5 november 2009 Auteur Delen Geplaatst: 5 november 2009 Wat kan het leven eenvoudig zijn! Das krek wak wou! Daar kan ik mee werken. Hartelijk dank! MVG perloc Quote Link naar reactie
anoniem Geplaatst: 5 november 2009 Auteur Delen Geplaatst: 5 november 2009 Even op terugkomen. Op de eerste plaats, het gaat!! Maar er zit een groot nadeel aan. Ik moet aan het "spaghetti programmeren", dus dingen doen die in mijn normale programma structuur niet thuishoren. Dat komt omdat ik een DOS commando (ATTRIB of DIR) moet gebruiken in mijn normale programma opzet. Ik kan in mijn programma ATTRIB "runnen" maar dat kan alleen als de files die ik wil onderzoeken staan in de folder waar ik ATTRIB wil gebruiken. En dat is niet zo. En ATTRIB luistert niet naar structuren zoals in mijn geval: Run Attrib drl + '\stockmed.dbf' > at_but.txt. Daarbij is DRL een variabele die de folder aangeeft waar STOCKMED staat. Daar krijg ik van DOS een foutmelding op. Logisch natuurlijk. Er zijn een paar mogelijkheden om dit te omzeilen maar zoals gezegd, dan moet ik de structuur van mijn programma geweld aandoen. Dat doe ik niet. Het programma is netjes geschreven en dat wil ik zo houden. Anyway, dank voor de tip. Misschien kan ik er toch nog wel eens gebruik van maken. MVG perloc Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen