Advice on Code please 
Author Message
 Advice on Code please

Hi All,

I have a 32bit app for Win 98SE operating system only. All trials have
so far been good, however I have found that the following code fails
everytime on Win 2000, & Win XP. My concern is that whatever is
causing to fail on these systems may suggest possible failures on my
target operating system. Could I please get some feedback as to what
might be causing the failure in XP & 2000, and whether I should be OK
with Win 98. Please note that even though the use of _lopen, _llseek
and _lclose etc is supposed to be only for backward compatibility with
16bit, Friedrich Linder actually put me onto the use of these APIs and
he stated that he actually used them in SetupBuilder with no problems,
so it might be more a problem with my parameters. Unfortunately I
don't have ready access to a Win 2000 or XP machine to test the
results of changes of parameters.

       SourcePath = SourceDrive &'\Movies\*.*'
       DIRECTORY(AllFiles,CLIP(SourcePath),ff_:NORMAL) ! Fill a queue
with filenames
       Recs = RECORDS(AllFiles)
       ! Determine and create appropriate movie folder on HD
       FullDirectoryName = InstallDirectory &'\Movies'
       MkDir(FullDirectoryName)
       ! Loop through each file getting its size and adding it to the
total
       LOOP i = 1 TO Recs
            GET(AllFiles,i)
            CDFileName = SourceDrive &'\Movies\'& CLIP(FIL:Name) !
Construct full path name
            CDFileHandle = _lopen(CDFileName,2H) ! Obtain a handle by
opening the file
            FileSize = _llseek(CDFileHandle,0,2) ! Determine its size
            TotalFileSize += FileSize            ! Determine combined
size of files
            IF _lclose(CDFileHandle) <> 0        ! Close the handle
                ErrorNo = GetLastError()
                message(ErrorNo &' Couldn''t close the CD file')
                HALT
            END
       END

Best Regards,
        Geoff Spillane
        (C5EE abc)



Fri, 12 Aug 2005 07:51:40 GMT  
 Advice on Code please
Hi

Here is some code you can look through. Hope it helps some.

! Get the files in the local directory and upload the
! data to a queue for display

  CLEAR(lpFileName)
  FREE(DirectoryData)
  lpFilename = CLIP(DirectoryPath) & '\*.*'
  hFileFind = FindFirstFile(lpFileName,lpFindFileData)
  CASE hFileFind
  OF INVALID_HANDLE_VALUE
  ELSE
    DO IsValidFile
    LOOP WHILE FindNextFile(hFileFind,lpFindFileData)
      DO IsValidFile
    END
  END
  GET(DirectoryData,1)
  IF ERRORCODE()
    CLEAR(DirectoryData)
  END

IsValidFile ROUTINE

! Make sure that we only work with files and not
! with directories.

  IF NOT (CLIP(lpFindFileData.cFileName) = '.' |
  OR CLIP(lpFindFileData.cFileName) = '..' |
  OR BAND(lpFindFileData.dwFileAttributes,FILE_ATTRIBUTE_DIRECTORY) )
    DirectoryData.DIR:Name = lpFindFileData.cFileName
    DirectoryData.DIR:Icon = SetFileIcon(lpFindFileData.cFileName)
    DirectoryData.DIR:SortName = UPPER(lpFindFileData.cFileName)
    DirectoryData.DIR:Path = lpFindFileData.cFileName
    DirectoryData.DIR:Filesize = (lpFindFileData.nFileSizeHigh * MAXDWORD) +
lpFindFileData.nFileSizeLow
    ADD(DirectoryData,+DirectoryData.DIR:SortName)
    DO Isuploaded
  END

Isuploaded ROUTINE

! Make sure the files are uploaded. Also make sure that
! the file sizes are the same. If not, mark it with a
! red dot to indicate uploading needs to take place

  RemoteFileQueue.DIR:Name = DirectoryData.DIR:Name
  GET(RemoteFileQueue,RemoteFileQueue.DIR:Name)
  If ERRORCODE() = 30 ! Not Found
     DirectoryData.DIR:Icon = 5
  ELSE
     IF DirectoryData.DIR:Filesize ~= RemoteFileQueue.DIR:Filesize
        DirectoryData.DIR:Icon = 5
     ELSE
        DirectoryData.DIR:Icon = 6
     END
  END
     PUT(DirectoryData,+DirectoryData.DIR:SortName)

Regards

Ben


Quote:
> Hi All,

> I have a 32bit app for Win 98SE operating system only. All trials have
> so far been good, however I have found that the following code fails
> everytime on Win 2000, & Win XP. My concern is that whatever is
> causing to fail on these systems may suggest possible failures on my
> target operating system. Could I please get some feedback as to what
> might be causing the failure in XP & 2000, and whether I should be OK
> with Win 98. Please note that even though the use of _lopen, _llseek
> and _lclose etc is supposed to be only for backward compatibility with
> 16bit, Friedrich Linder actually put me onto the use of these APIs and
> he stated that he actually used them in SetupBuilder with no problems,
> so it might be more a problem with my parameters. Unfortunately I
> don't have ready access to a Win 2000 or XP machine to test the
> results of changes of parameters.

>        SourcePath = SourceDrive &'\Movies\*.*'
>        DIRECTORY(AllFiles,CLIP(SourcePath),ff_:NORMAL) ! Fill a queue
> with filenames
>        Recs = RECORDS(AllFiles)
>        ! Determine and create appropriate movie folder on HD
>        FullDirectoryName = InstallDirectory &'\Movies'
>        MkDir(FullDirectoryName)
>        ! Loop through each file getting its size and adding it to the
> total
>        LOOP i = 1 TO Recs
>             GET(AllFiles,i)
>             CDFileName = SourceDrive &'\Movies\'& CLIP(FIL:Name) !
> Construct full path name
>             CDFileHandle = _lopen(CDFileName,2H) ! Obtain a handle by
> opening the file
>             FileSize = _llseek(CDFileHandle,0,2) ! Determine its size
>             TotalFileSize += FileSize            ! Determine combined
> size of files
>             IF _lclose(CDFileHandle) <> 0        ! Close the handle
>                 ErrorNo = GetLastError()
>                 message(ErrorNo &' Couldn''t close the CD file')
>                 HALT
>             END
>        END

> Best Regards,
> Geoff Spillane
> (C5EE abc)



Fri, 12 Aug 2005 09:03:32 GMT  
 Advice on Code please
OOPS ..

Here are the data structure definitions

WIN32_FIND_DATA         GROUP,TYPE
dwFileAttributes          ULONG
ftCreationTime            GROUP(FILETIME).
ftLastAccessTime          GROUP(FILETIME).
ftLastWriteTime           GROUP(FILETIME).
nFileSizeHigh             ULONG
nFileSizeLow              ULONG
dwReserved0               ULONG
dwReserved1               ULONG
cFileName                 CSTRING(FILE:MaxFilePath)
cAlternameFileName        CSTRING(14)
                        END

hFileFind           ULONG
lpFileName          CSTRING(FILE:MaxFilePath)
lpFindFileData      GROUP(WIN32_FIND_DATA).
ShortFileName       CSTRING(FILE:MaxFilePath)

Regards

Ben

Quote:
> Hi

> Here is some code you can look through. Hope it helps some.

> ! Get the files in the local directory and upload the
> ! data to a queue for display

>   CLEAR(lpFileName)
>   FREE(DirectoryData)
>   lpFilename = CLIP(DirectoryPath) & '\*.*'
>   hFileFind = FindFirstFile(lpFileName,lpFindFileData)
>   CASE hFileFind
>   OF INVALID_HANDLE_VALUE
>   ELSE
>     DO IsValidFile
>     LOOP WHILE FindNextFile(hFileFind,lpFindFileData)
>       DO IsValidFile
>     END
>   END
>   GET(DirectoryData,1)
>   IF ERRORCODE()
>     CLEAR(DirectoryData)
>   END

> IsValidFile ROUTINE

> ! Make sure that we only work with files and not
> ! with directories.

>   IF NOT (CLIP(lpFindFileData.cFileName) = '.' |
>   OR CLIP(lpFindFileData.cFileName) = '..' |
>   OR BAND(lpFindFileData.dwFileAttributes,FILE_ATTRIBUTE_DIRECTORY) )
>     DirectoryData.DIR:Name = lpFindFileData.cFileName
>     DirectoryData.DIR:Icon = SetFileIcon(lpFindFileData.cFileName)
>     DirectoryData.DIR:SortName = UPPER(lpFindFileData.cFileName)
>     DirectoryData.DIR:Path = lpFindFileData.cFileName
>     DirectoryData.DIR:Filesize = (lpFindFileData.nFileSizeHigh * MAXDWORD)
+
> lpFindFileData.nFileSizeLow
>     ADD(DirectoryData,+DirectoryData.DIR:SortName)
>     DO Isuploaded
>   END

> Isuploaded ROUTINE

> ! Make sure the files are uploaded. Also make sure that
> ! the file sizes are the same. If not, mark it with a
> ! red dot to indicate uploading needs to take place

>   RemoteFileQueue.DIR:Name = DirectoryData.DIR:Name
>   GET(RemoteFileQueue,RemoteFileQueue.DIR:Name)
>   If ERRORCODE() = 30 ! Not Found
>      DirectoryData.DIR:Icon = 5
>   ELSE
>      IF DirectoryData.DIR:Filesize ~= RemoteFileQueue.DIR:Filesize
>         DirectoryData.DIR:Icon = 5
>      ELSE
>         DirectoryData.DIR:Icon = 6
>      END
>   END
>      PUT(DirectoryData,+DirectoryData.DIR:SortName)

> Regards

> Ben



> > Hi All,

> > I have a 32bit app for Win 98SE operating system only. All trials have
> > so far been good, however I have found that the following code fails
> > everytime on Win 2000, & Win XP. My concern is that whatever is
> > causing to fail on these systems may suggest possible failures on my
> > target operating system. Could I please get some feedback as to what
> > might be causing the failure in XP & 2000, and whether I should be OK
> > with Win 98. Please note that even though the use of _lopen, _llseek
> > and _lclose etc is supposed to be only for backward compatibility with
> > 16bit, Friedrich Linder actually put me onto the use of these APIs and
> > he stated that he actually used them in SetupBuilder with no problems,
> > so it might be more a problem with my parameters. Unfortunately I
> > don't have ready access to a Win 2000 or XP machine to test the
> > results of changes of parameters.

> >        SourcePath = SourceDrive &'\Movies\*.*'
> >        DIRECTORY(AllFiles,CLIP(SourcePath),ff_:NORMAL) ! Fill a queue
> > with filenames
> >        Recs = RECORDS(AllFiles)
> >        ! Determine and create appropriate movie folder on HD
> >        FullDirectoryName = InstallDirectory &'\Movies'
> >        MkDir(FullDirectoryName)
> >        ! Loop through each file getting its size and adding it to the
> > total
> >        LOOP i = 1 TO Recs
> >             GET(AllFiles,i)
> >             CDFileName = SourceDrive &'\Movies\'& CLIP(FIL:Name) !
> > Construct full path name
> >             CDFileHandle = _lopen(CDFileName,2H) ! Obtain a handle by
> > opening the file
> >             FileSize = _llseek(CDFileHandle,0,2) ! Determine its size
> >             TotalFileSize += FileSize            ! Determine combined
> > size of files
> >             IF _lclose(CDFileHandle) <> 0        ! Close the handle
> >                 ErrorNo = GetLastError()
> >                 message(ErrorNo &' Couldn''t close the CD file')
> >                 HALT
> >             END
> >        END

> > Best Regards,
> > Geoff Spillane
> > (C5EE abc)



Fri, 12 Aug 2005 09:06:32 GMT  
 Advice on Code please
Not sure why it's failing, but why not use the file size returned by
DIRECTORY?

--
Steve B.
JaDu Technologies
www.jadutech.com


Quote:
> Hi All,

> I have a 32bit app for Win 98SE operating system only. All trials have
> so far been good, however I have found that the following code fails
> everytime on Win 2000, & Win XP. My concern is that whatever is
> causing to fail on these systems may suggest possible failures on my
> target operating system. Could I please get some feedback as to what
> might be causing the failure in XP & 2000, and whether I should be OK
> with Win 98. Please note that even though the use of _lopen, _llseek
> and _lclose etc is supposed to be only for backward compatibility with
> 16bit, Friedrich Linder actually put me onto the use of these APIs and
> he stated that he actually used them in SetupBuilder with no problems,
> so it might be more a problem with my parameters. Unfortunately I
> don't have ready access to a Win 2000 or XP machine to test the
> results of changes of parameters.

>        SourcePath = SourceDrive &'\Movies\*.*'
>        DIRECTORY(AllFiles,CLIP(SourcePath),ff_:NORMAL) ! Fill a queue
> with filenames
>        Recs = RECORDS(AllFiles)
>        ! Determine and create appropriate movie folder on HD
>        FullDirectoryName = InstallDirectory &'\Movies'
>        MkDir(FullDirectoryName)
>        ! Loop through each file getting its size and adding it to the
> total
>        LOOP i = 1 TO Recs
>             GET(AllFiles,i)
>             CDFileName = SourceDrive &'\Movies\'& CLIP(FIL:Name) !
> Construct full path name
>             CDFileHandle = _lopen(CDFileName,2H) ! Obtain a handle by
> opening the file
>             FileSize = _llseek(CDFileHandle,0,2) ! Determine its size
>             TotalFileSize += FileSize            ! Determine combined
> size of files
>             IF _lclose(CDFileHandle) <> 0        ! Close the handle
>                 ErrorNo = GetLastError()
>                 message(ErrorNo &' Couldn''t close the CD file')
>                 HALT
>             END
>        END

> Best Regards,
> Geoff Spillane
> (C5EE abc)



Fri, 12 Aug 2005 09:08:43 GMT  
 Advice on Code please
Geoff,
   Check the file open code. On Win 2000 and XP you have to open the CD
files in read only mode.

--
Bill Rollins
Total Control Software Corporation

Quote:
> Hi All,

> I have a 32bit app for Win 98SE operating system only. All trials have
> so far been good, however I have found that the following code fails
> everytime on Win 2000, & Win XP. My concern is that whatever is
> causing to fail on these systems may suggest possible failures on my
> target operating system. Could I please get some feedback as to what
> might be causing the failure in XP & 2000, and whether I should be OK
> with Win 98. Please note that even though the use of _lopen, _llseek
> and _lclose etc is supposed to be only for backward compatibility with
> 16bit, Friedrich Linder actually put me onto the use of these APIs and
> he stated that he actually used them in SetupBuilder with no problems,
> so it might be more a problem with my parameters. Unfortunately I
> don't have ready access to a Win 2000 or XP machine to test the
> results of changes of parameters.

>        SourcePath = SourceDrive &'\Movies\*.*'
>        DIRECTORY(AllFiles,CLIP(SourcePath),ff_:NORMAL) ! Fill a queue
> with filenames
>        Recs = RECORDS(AllFiles)
>        ! Determine and create appropriate movie folder on HD
>        FullDirectoryName = InstallDirectory &'\Movies'
>        MkDir(FullDirectoryName)
>        ! Loop through each file getting its size and adding it to the
> total
>        LOOP i = 1 TO Recs
>             GET(AllFiles,i)
>             CDFileName = SourceDrive &'\Movies\'& CLIP(FIL:Name) !
> Construct full path name
>             CDFileHandle = _lopen(CDFileName,2H) ! Obtain a handle by
> opening the file
>             FileSize = _llseek(CDFileHandle,0,2) ! Determine its size
>             TotalFileSize += FileSize            ! Determine combined
> size of files
>             IF _lclose(CDFileHandle) <> 0        ! Close the handle
>                 ErrorNo = GetLastError()
>                 message(ErrorNo &' Couldn''t close the CD file')
>                 HALT
>             END
>        END

> Best Regards,
> Geoff Spillane
> (C5EE abc)



Fri, 12 Aug 2005 10:15:36 GMT  
 Advice on Code please
Hi Steve,

The code listed was for brevity. It is part of a much bigger DLL that
I call from within SetupBuilder. In essence it checks to see if there
is enough room to copy certain files form the installation CD to the
Hard Disk (329meg). If there is it then creates a directory then reads
and writes 2048 bytes at a time, updating 3 progress bars as it goes.
I used the same code for determining the file size just for
convenience.
I think Bill has probably given me the answer though as the parameter
I used in the  _lopen API was  OF_READWRITE (Equate 2H).

Best Regards,
        Geoff Spillane

On Mon, 24 Feb 2003 12:08:43 +1100, "Steve B."

Quote:

>Not sure why it's failing, but why not use the file size returned by
>DIRECTORY?



Fri, 12 Aug 2005 12:19:20 GMT  
 Advice on Code please
Hi Bill

Quote:
>   Check the file open code. On Win 2000 and XP you have to open the CD
>files in read only mode.

I think you have probably found my problem. I didn't know that, and I
set the parameter in the  _lopen API as  OF_READWRITE (Equate 2H).

Thanks & Best Regards,
        Geoff Spillane



Fri, 12 Aug 2005 12:21:34 GMT  
 Advice on Code please
Hi Ben,

Thanks for the code. Always useful even if not for this occasion. I
think Bill found my problem.

Best Regards,
        Geoff Spillane



Quote:
>OOPS ..

>Here are the data structure definitions

>WIN32_FIND_DATA         GROUP,TYPE
>dwFileAttributes          ULONG
>ftCreationTime            GROUP(FILETIME).
>ftLastAccessTime          GROUP(FILETIME).
>ftLastWriteTime           GROUP(FILETIME).
>nFileSizeHigh             ULONG
>nFileSizeLow              ULONG
>dwReserved0               ULONG
>dwReserved1               ULONG
>cFileName                 CSTRING(FILE:MaxFilePath)
>cAlternameFileName        CSTRING(14)
>                        END

>hFileFind           ULONG
>lpFileName          CSTRING(FILE:MaxFilePath)
>lpFindFileData      GROUP(WIN32_FIND_DATA).
>ShortFileName       CSTRING(FILE:MaxFilePath)

>Regards

>Ben


>> Hi

>> Here is some code you can look through. Hope it helps some.

>> ! Get the files in the local directory and upload the
>> ! data to a queue for display

>>   CLEAR(lpFileName)
>>   FREE(DirectoryData)
>>   lpFilename = CLIP(DirectoryPath) & '\*.*'
>>   hFileFind = FindFirstFile(lpFileName,lpFindFileData)
>>   CASE hFileFind
>>   OF INVALID_HANDLE_VALUE
>>   ELSE
>>     DO IsValidFile
>>     LOOP WHILE FindNextFile(hFileFind,lpFindFileData)
>>       DO IsValidFile
>>     END
>>   END
>>   GET(DirectoryData,1)
>>   IF ERRORCODE()
>>     CLEAR(DirectoryData)
>>   END

>> IsValidFile ROUTINE

>> ! Make sure that we only work with files and not
>> ! with directories.

>>   IF NOT (CLIP(lpFindFileData.cFileName) = '.' |
>>   OR CLIP(lpFindFileData.cFileName) = '..' |
>>   OR BAND(lpFindFileData.dwFileAttributes,FILE_ATTRIBUTE_DIRECTORY) )
>>     DirectoryData.DIR:Name = lpFindFileData.cFileName
>>     DirectoryData.DIR:Icon = SetFileIcon(lpFindFileData.cFileName)
>>     DirectoryData.DIR:SortName = UPPER(lpFindFileData.cFileName)
>>     DirectoryData.DIR:Path = lpFindFileData.cFileName
>>     DirectoryData.DIR:Filesize = (lpFindFileData.nFileSizeHigh * MAXDWORD)
>+
>> lpFindFileData.nFileSizeLow
>>     ADD(DirectoryData,+DirectoryData.DIR:SortName)
>>     DO Isuploaded
>>   END

>> Isuploaded ROUTINE

>> ! Make sure the files are uploaded. Also make sure that
>> ! the file sizes are the same. If not, mark it with a
>> ! red dot to indicate uploading needs to take place

>>   RemoteFileQueue.DIR:Name = DirectoryData.DIR:Name
>>   GET(RemoteFileQueue,RemoteFileQueue.DIR:Name)
>>   If ERRORCODE() = 30 ! Not Found
>>      DirectoryData.DIR:Icon = 5
>>   ELSE
>>      IF DirectoryData.DIR:Filesize ~= RemoteFileQueue.DIR:Filesize
>>         DirectoryData.DIR:Icon = 5
>>      ELSE
>>         DirectoryData.DIR:Icon = 6
>>      END
>>   END
>>      PUT(DirectoryData,+DirectoryData.DIR:SortName)

>> Regards

>> Ben



>> > Hi All,

>> > I have a 32bit app for Win 98SE operating system only. All trials have
>> > so far been good, however I have found that the following code fails
>> > everytime on Win 2000, & Win XP. My concern is that whatever is
>> > causing to fail on these systems may suggest possible failures on my
>> > target operating system. Could I please get some feedback as to what
>> > might be causing the failure in XP & 2000, and whether I should be OK
>> > with Win 98. Please note that even though the use of _lopen, _llseek
>> > and _lclose etc is supposed to be only for backward compatibility with
>> > 16bit, Friedrich Linder actually put me onto the use of these APIs and
>> > he stated that he actually used them in SetupBuilder with no problems,
>> > so it might be more a problem with my parameters. Unfortunately I
>> > don't have ready access to a Win 2000 or XP machine to test the
>> > results of changes of parameters.

>> >        SourcePath = SourceDrive &'\Movies\*.*'
>> >        DIRECTORY(AllFiles,CLIP(SourcePath),ff_:NORMAL) ! Fill a queue
>> > with filenames
>> >        Recs = RECORDS(AllFiles)
>> >        ! Determine and create appropriate movie folder on HD
>> >        FullDirectoryName = InstallDirectory &'\Movies'
>> >        MkDir(FullDirectoryName)
>> >        ! Loop through each file getting its size and adding it to the
>> > total
>> >        LOOP i = 1 TO Recs
>> >             GET(AllFiles,i)
>> >             CDFileName = SourceDrive &'\Movies\'& CLIP(FIL:Name) !
>> > Construct full path name
>> >             CDFileHandle = _lopen(CDFileName,2H) ! Obtain a handle by
>> > opening the file
>> >             FileSize = _llseek(CDFileHandle,0,2) ! Determine its size
>> >             TotalFileSize += FileSize            ! Determine combined
>> > size of files
>> >             IF _lclose(CDFileHandle) <> 0        ! Close the handle
>> >                 ErrorNo = GetLastError()
>> >                 message(ErrorNo &' Couldn''t close the CD file')
>> >                 HALT
>> >             END
>> >        END

>> > Best Regards,
>> > Geoff Spillane
>> > (C5EE abc)



Fri, 12 Aug 2005 12:23:50 GMT  
 Advice on Code please
Hi Geoff,

On Mon, 24 Feb 2003 10:51:40 +1100, Geoff Spillane

Quote:

>with Win 98. Please note that even though the use of _lopen, _llseek
>and _lclose etc is supposed to be only for backward compatibility with

I, personally, would be wary of these obsolete api functions.  MS has
declared them obsolete which means that they may or may not work and
they may or may not work as documented and they may or may not work on
different OS.  

There are two things that you may need to check into:  The iReadWrite
parameter and the settings of the OF_SHARE_... part of it.  The second
thing is access rights to the directory where you are accessing the
file.  

Best regards,

Arnr Baldvinsson
Icetips Software        
San Antonio, Texas, USA
www.icetips.com

ICQ:  113314380

Subscribe to information from Icetips.com:
http://www.icetips.com/getnotificationinfo.htm



Sat, 13 Aug 2005 02:22:25 GMT  
 Advice on Code please
Hi Arnor,

Good advice, and thanks for the pointers regarding the iReadWrite
parameter.

Best Regards,
        Geoff Spillane


Quote:

>Hi Geoff,

>On Mon, 24 Feb 2003 10:51:40 +1100, Geoff Spillane

>>with Win 98. Please note that even though the use of _lopen, _llseek
>>and _lclose etc is supposed to be only for backward compatibility with

>I, personally, would be wary of these obsolete api functions.  MS has
>declared them obsolete which means that they may or may not work and
>they may or may not work as documented and they may or may not work on
>different OS.  

>There are two things that you may need to check into:  The iReadWrite
>parameter and the settings of the OF_SHARE_... part of it.  The second
>thing is access rights to the directory where you are accessing the
>file.  

>Best regards,

>Arnr Baldvinsson
>Icetips Software        
>San Antonio, Texas, USA
>www.icetips.com

>ICQ:  113314380

>Subscribe to information from Icetips.com:
>http://www.icetips.com/getnotificationinfo.htm



Sat, 13 Aug 2005 06:32:14 GMT  
 
 [ 10 post ] 

 Relevant Pages 

1. VA V5.5 OLE part displaying linked Word docs - advice please

2. Please - Some Advice on Language Choice

3. URGENT Word Processing advice needed please

4. Repost Lookup Problems - Help or advice please

5. Advice please, C++ vs SMALTALK

6. Advice Please!

7. I want to ask you All an advice, please

8. Please offer advice

9. Advice please

10. Advice Please Upgrading Clipper 87

11. Dilemma - Need Advice Please on AppDev.

12. Clipper Advice Please

 

 
Powered by phpBB® Forum Software