Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #25583

Re: Foxpro goto command and deleted records

Path csiph.com!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!news1.tnib.de!feed.news.tnib.de!news.tnib.de!newsfeed.freenet.ag!news2.euro.net!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail
Return-Path <ethan@stoneleaf.us>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.000
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; '(at': 0.03; 'exception': 0.03; 'correct.': 0.07; 'from:addr:ethan': 0.09; 'from:addr:stoneleaf.us': 0.09; 'from:name:ethan furman': 0.09; 'message-id:@stoneleaf.us': 0.09; 'option:': 0.09; 'received:184.172': 0.09; 'received:gator410.hostgator.com': 0.09; 'record.': 0.09; 'subject:command': 0.09; 'typed': 0.09; '~ethan~': 0.09; 'def': 0.10; 'anyway': 0.11; 'index': 0.13; 'deleted,': 0.16; 'received:70.85.130': 0.16; 'received:72.11': 0.16; 'received:72.11.125': 0.16; 'received:72.11.125.166': 0.16; 'record,': 0.16; 'wrote:': 0.17; 'pointer': 0.17; 'memory': 0.18; 'module': 0.19; 'raise': 0.24; 'least': 0.25; 'header:In-Reply- To:1': 0.25; 'header:User-Agent:1': 0.26; 'possibly': 0.27; "doesn't": 0.28; 'record': 0.28; '(possibly': 0.29; "i'm": 0.29; 'that.': 0.30; 'on,': 0.30; 'towards': 0.32; 'not.': 0.32; 'certain': 0.33; 'to:addr:python-list': 0.33; 'skip:d 20': 0.34; 'version': 0.34; 'options:': 0.35; 'pm,': 0.35; 'next': 0.35; 'but': 0.36; 'should': 0.36; 'possible': 0.37; 'does': 0.37; 'subject:: ': 0.38; 'to:addr:python.org': 0.39; 'header:Received:5': 0.40; 'your': 0.60; 'jul': 0.65; 'sound': 0.65; 'furman': 0.84; 'good!': 0.84; 'seventh': 0.84; 'ethan': 0.91; 'fired': 0.91; 'subject:records': 0.91
Date Wed, 18 Jul 2012 10:23:03 -0700
From Ethan Furman <ethan@stoneleaf.us>
User-Agent Thunderbird 1.5.0.10 (Windows/20070221)
MIME-Version 1.0
To python-list@python.org
Subject Re: Foxpro goto command and deleted records
References <5005EDC0.6050608@stoneleaf.us> <8416AFAF-E201-4F89-B306-D89F920A00FE@leafe.com>
In-Reply-To <8416AFAF-E201-4F89-B306-D89F920A00FE@leafe.com>
Content-Type text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding 7bit
X-AntiAbuse This header was added to track abuse, please include it with any abuse report
X-AntiAbuse Primary Hostname - gator410.hostgator.com
X-AntiAbuse Original Domain - python.org
X-AntiAbuse Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse Sender Address Domain - stoneleaf.us
X-BWhitelist no
X-Source
X-Source-Args
X-Source-Dir
X-Source-Sender ([192.168.10.136]) [72.11.125.166]:1080
X-Source-Auth ethan+stoneleaf.us
X-Email-Count 2
X-Source-Cap dG9idWs7dG9idWs7Z2F0b3I0MTAuaG9zdGdhdG9yLmNvbQ==
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.12
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.2274.1342631786.4697.python-list@python.org> (permalink)
Lines 45
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1342631786 news.xs4all.nl 6899 [2001:888:2000:d::a6]:60101
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:25583

Show key headers only | View raw


Ed Leafe wrote:
> On Jul 17, 2012, at 5:57 PM, Ethan Furman wrote:
> 
>> In Foxpro if you do a
>>
>> GOTO 7
>>
>> with deleted off and record 7 is deleted, the record pointer doesn't
>> move (at least in version 6).
>>
>> I don't like that.
>>
>> I see four other options:
>>
>> 0) don't move the pointer (listed for completeness)
>> 1) go to that record anyway
>> 2) go to the next undeleted record
>> 3) go to the seventh undeleted record (possibly the least practical)
>> 4) raise an exception
>>
>> Any opinions?
> 
> 	It's been many years since I fired up VFP, but the above doesn't sound correct. If you have SET DELETED OFF and the GOTO 7, the pointer should move to the 7th record, whether it is marked deleted or not. With SET DELETED ON, the pointer should not move, since 7 is not a valid record.

Your memory is good!  I typed it in wrong.

I still don't like it.  Any opinion on the other four choices?  I'm
leaning towards 1, possibly with 4 as an option:

     def goto(self, recno, raise_if_deleted=True):
         if is_deleted(self[recno)) and raise_if_deleted:
             raise DbfError(
                "Record %d is deleted and use_deleted is False" % recno)
         self._index = recno

Part of the reason I feel this is reasonable is that with my dbf module
it is possible to create an index that does /not/ include certain records:

     def ignore_deleted(record):
         if dbf.deleted(record):
             return dbf.DoNotIndex
         return dbf.recno(record)

~Ethan~

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: Foxpro goto command and deleted records Ethan Furman <ethan@stoneleaf.us> - 2012-07-18 10:23 -0700

csiph-web