Append a record to the end of a text file: Difference between revisions
Content added Content deleted
(Initial FutureBasic task solution added) |
|||
Line 1,591: | Line 1,591: | ||
| <tt>record</tt> || ASCII text || default <abbr title="run-time library">RTL</abbr> || ☑ || ☐ || ☐ |
| <tt>record</tt> || ASCII text || default <abbr title="run-time library">RTL</abbr> || ☑ || ☐ || ☐ |
||
|} |
|} |
||
=={{header|FutureBasic}}== |
|||
<syntaxhighlight lang="futurebasic"> |
|||
local fn AppendRecordToFile( pwStr as CFStringRef, url as CFURLRef ) as BOOL |
|||
ErrorRef err = NULL |
|||
BOOL success = YES |
|||
CFDataRef pwData = fn StringData( pwStr, NSUTF8StringEncoding ) |
|||
FileHandleRef fh = fn FileHandleForWritingToURL( url, @err ) |
|||
if ( err ) |
|||
success = fn FileManagerFileExistsAtURL( url ) |
|||
if success == NO then fn FileManagerCreateFileAtURL( url, pwData, NULL ) : success = YES : exit fn |
|||
end if |
|||
success = fn FileHandleSeekToEnd( fh, NULL, @err ) |
|||
if success == NO then print fn ErrorLocalizedDescription( err ) : exit fn |
|||
success = fn FileHandleWriteData( fh, pwData, @err ) |
|||
if success == NO then print fn ErrorLocalizedDescription( err ) : exit fn |
|||
success = fn FileHandleClose( fh, @err ) |
|||
if success == NO then print fn ErrorLocalizedDescription( err ) : exit fn |
|||
end fn = success |
|||
local fn ReadFileRecords( url as CFURLRef ) |
|||
ErrorRef err = NULL |
|||
CFDataRef pwData = fn DataWithContentsOfURL( url, NSDataReadingMappedIfSafe, @err ) |
|||
if err then print fn ErrorLocalizedDescription( err ) : exit fn |
|||
print fn StringWithData( pwData, NSUTF8StringEncoding ) |
|||
end fn |
|||
local fn ProcessRecords |
|||
BOOL success = NO |
|||
CFURLRef desktopURL = fn FileManagerURLForDirectory( NSDesktopDirectory, NSUserDomainMask ) |
|||
CFURLRef url = fn URLByAppendingPathComponent( desktopURL, @"passwords.txt" ) |
|||
CFArrayRef pwRecords = @[@"account:password:UID:GID:fullname,office,extension,homephone,email:directory:shell\n",¬ |
|||
@"jsmith:x:1001:1000:Joe Smith,Room 1007,(234)555-8917,(234)555-0077,jsmith@rosettacode.org:/home/jsmith:/bin/bash\n",¬ |
|||
@"jdoe:x:1002:1000:Jane Doe,Room 1004,(234)555-8914,(234)555-0044,jdoe@rosettacode.org:/home/jdoe:/bin/bash\n"] |
|||
NSUInteger i, count = len(pwRecords) |
|||
for i = 0 to count - 1 |
|||
success = fn AppendRecordToFile( pwRecords[i], url ) |
|||
if success then printf @"Record appended to file." else printf @"Failed to append record." |
|||
next |
|||
fn ReadFileRecords( url ) |
|||
end fn |
|||
fn ProcessRecords |
|||
HandleEvents |
|||
</syntaxhighlight> |
|||
{{output}} |
|||
<pre> |
|||
Record appended to file. |
|||
Record appended to file. |
|||
Record appended to file. |
|||
account:password:UID:GID:fullname,office,extension,homephone,email:directory:shell |
|||
jsmith:x:1001:1000:Joe Smith,Room 1007,(234)555-8917,(234)555-0077,jsmith@rosettacode.org:/home/jsmith:/bin/bash |
|||
jdoe:x:1002:1000:Jane Doe,Room 1004,(234)555-8914,(234)555-0044,jdoe@rosettacode.org:/home/jdoe:/bin/bash |
|||
</pre> |
|||
=={{header|Go}}== |
=={{header|Go}}== |